public enum Enums {
ADS
}
1.相同字段 不同属性的转换 如age
2.相同字段相同属性的转换 如name
3.不同类型不同字段的转换 如sex
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Demo0 {
private Long age;
private String name;
private String sex;
private String hobby;
}
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Demo implements Serializable {
private Integer age;
private String name;
private Enums enums;
private String love;
}
package com.example.demo.demoTest;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers;
import java.util.List;
@Mapper
public interface PersonConverter {
PersonConverter INSTANCE = Mappers.getMapper(PersonConverter.class);
@Mappings({
@Mapping(target = "age" ,expression = "java(versionConvert(demo.getAge()))"),
@Mapping(target = "hobby" , source ="love")
})
Demo0 domain2dto(Demo demo);
List<Demo0> domain2dt(List<Demo> demo);
//转换versionTitle
default Long versionConvert(Integer age){
return Long.valueOf(age);
}
}
编译后的代码如下:看完后就会发现,妈妈再也不用担心我set,get了
public class PersonConverterImpl implements PersonConverter {
public PersonConverterImpl() {
}
public Demo0 domain2dto(Demo demo) {
if (demo == null) {
return null;
} else {
Demo0 demo0 = new Demo0();
demo0.setHobby(demo.getLove());
demo0.setName(demo.getName());
demo0.setAge(this.versionConvert(demo.getAge()));
return demo0;
}
}
public List<Demo0> domain2dt(List<Demo> demo) {
if (demo == null) {
return null;
} else {
List<Demo0> list = new ArrayList(demo.size());
Iterator var3 = demo.iterator();
while(var3.hasNext()) {
Demo demo1 = (Demo)var3.next();
list.add(this.domain2dto(demo1));
}
return list;
}
}
}