Verwenden Sie MapStruct 1.1.0
Weitere Informationen zu MapStruct finden Sie auf der offiziellen Website http://mapstruct.org/
Bean
public class ProfileForm {
private String name;
private int age;
private String location;
// constructor/getter/setter
}
public class Profile {
private String name;
private int age;
private String location;
// constructor/getter/setter
}
@Mapper
public interface ProfileMapper {
ProfileMapper INSTANCE = Mappers.getMapper(ProfileMapper.class);
public Profile profileFormToProfile(ProfileForm form);
}
ProfileForm form = new ProfileForm("Michael Scofield", 30, "vereinigte Staaten von Amerika");
Profile profile = ProfileMapper.INSTANCE.profileFormToProfile(form);
System.out.println(profile.getName()); //Michael Scofield
System.out.println(profile.getAge()); // 30
System.out.println(profile.getLocation()); //vereinigte Staaten von Amerika
Verwenden Sie die Annotation "@ Mapping", um einige Felder von der Zuordnung auszuschließen. Setzen Sie das Zielattribut so, dass Felder ausgeschlossen werden, und das Ignorierattribut auf "true".
@Mapper
public interface ProfileMapper {
ProfileMapper INSTANCE = Mappers.getMapper(ProfileMapper.class);
@Mapping(target = "name", ignore = true)
public Profile profileFormToProfile(ProfileForm form);
}
@Mapper
public interface ProfileMapper {
ProfileMapper INSTANCE = Mappers.getMapper(ProfileMapper.class);
public Profile profileFormToProfile(ProfileForm form);
//hinzufügen
public List<Profile> profileFormToProfile(List<ProfileForm> forms);
}
List<ProfileForm> forms = Arrays.asList(new ProfileForm("Michael Scofield", 30, "vereinigte Staaten von Amerika")
, new ProfileForm("Lincoln Burrows", 34, "vereinigte Staaten von Amerika"));
List<Profile> profiles = ProfileMapper.INSTANCE.profileFormToProfile(forms);
System.out.println(profiles.get(1).getName()); //Lincoln Burrows
System.out.println(profiles.get(1).getAge()); // 34
System.out.println(profiles.get(1).getLocation()); //vereinigte Staaten von Amerika
Bean
public class Foo {
private String foo1;
private String foo2;
// constructor/getter/setter
}
public class Bar {
private String bar1;
private String bar2;
// constructor/getter/setter
}
@Mapper
public interface FooBarMapper {
FooBarMapper INSTANCE = Mappers.getMapper(FooBarMapper.class);
@Mapping(target = "bar1", source = "foo1")
@Mapping(target = "bar2", source = "foo2")
public Bar fooToBar(Foo foo);
}
Geben Sie das zuzuordnende Feld (Ziel) und das zuzuordnende Feld (Quelle) mit der Annotation "@ Mapping" an.
Foo foo = new Foo("AIUEO", "Kakikukeko");
Bar bar = FooBarMapper.INSTANCE.fooToBar(foo);
System.out.println(bar.getBar1()); //AIUEO
System.out.println(bar.getBar2()); //Kakikukeko
Es gibt andere Funktionen für die Zuordnung, diese werden jedoch beim nächsten Mal verfügbar sein.
Recommended Posts