1、引入maven依赖
<dependencies>
<dependency>
<groupId>org.modelmapper</groupId>
<artifactId>modelmapper</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.8</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
</dependencies>
2、实体类
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Apple {
private String id;
private String name;
private String createAge;
private String age;
}
@Data
public class AppleDto {
private String name;
private String create_age;
private String birth;
}
3、使用Demo
public class Demo {
public static Apple apple;
ModelMapper modelMapper = new ModelMapper();
static {
apple = new Apple("1", "red", "21", "25");
}
// AppleDto(name=red, create_age=null, birth=null)
@Test
public void test1(){
AppleDto appleDto = modelMapper.map(apple, AppleDto.class);
System.out.println(appleDto.toString());
}
// AppleDto(name=red, create_age=21, birth=null),将create_age字段改成createage也是可以正确赋值
@Test
public void test2(){
modelMapper.getConfiguration().setMatchingStrategy(MatchingStrategies.LOOSE);
AppleDto appleDto = modelMapper.map(apple, AppleDto.class);
System.out.println(appleDto.toString());
}
// AppleDto(name=red, create_age=null, birth=25)
@Test
public void test3(){
modelMapper.addMappings(customField());
AppleDto appleDto = modelMapper.map(apple, new TypeToken<AppleDto>(){}.getType());
System.out.println(appleDto);
}
// 自定义映射规则
private static PropertyMap customField() {
return new PropertyMap<Apple, AppleDto>() {
@Override
protected void configure() {
map(source.getAge(), destination.getBirth());
}
};
}
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。