javaList集合的两种赋值⽅式
写在之前
在开发中难免会有entity,vo,dto之间的转换那么如何优雅快速的进⾏转换呢?当然你可以get在t显然不推荐这样做!对象转换
使⽤BeanUtils⼯具类copyProperties⽅法
像这样
//将merchantDTO赋值给entity(相同的属性)
使⽤mapstruct转换
⾸先在项⽬中引⼊依赖
<!-- MapStruct代码⽣成器,对象转换 -->
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-jdk8</artifactId>revita lift
</dependency>
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>${org.mapstruct.version}</version>
</dependency>
新建接⼝
@Mapper//这⾥的mapper是包org.mapstruct.Mapper
public interface AppCovert {
AppCovert INSTANCE = Mapper(AppCovert.class);
/**
* entity转dto
*/
AppDTO entityTodto(App entity);
/**
* dto转entity
* @param dto
pollen* @return
*/
会计证报考条件App dtoToEntity(AppDTO dto);
}
注:使⽤泛型⽀持所有类型的List转换
使⽤
//将entity转换为dto
MerchantDTO merchantDTO = ityTodto(merchantInfo);
List转换
truly madly deeply
使⽤BeanUtils⼯具类
集合转换是不是也想使⽤copyProperties⽅法?对你想的没错,想对了⼀半
只不过要对copyProperties⽅法进⾏封装
像这样
/**
* @param sources: 数据源类
* @param target: ⽬标类
游泳部* @return 赋值后的list
碎纸机英文*/
public static<S, T> List<T>copyListProperties(List<S> sources, Supplier<T> target, BeanCopyUtilCallBack<S, T> callBack){ List<T> list =new ArrayList<>(sources.size());
for(S source : sources){
T t = ();
list.add(t);
}
return list;
韩国大学排名
}
使⽤
List<Merchant> entity =new ArrayList<>();
Merchant merchant =new Merchant();
entity.add(merchant);
List<MerchantDTO> ts = pyListProperties(entity, MerchantDTO::new);
使⽤mapstruct转换
定义接⼝flickr是什么
@Mapper英语同声传译教程
public interface AppCovert {
AppCovert INSTANCE = Mapper(AppCovert.class);
/
**
* entityList转dtoList
* @param app
* @return
*/
List<AppDTO>listEntityToDto(List<App> app);
}
trot
使⽤
List<App> apps =new ArrayList<>();
List<AppDTO> appDtos = AppCovert.INSTANCE.listEntityToDto(apps);
对⽐BeanUtils⼯具类,mapstruct对象转换显得⽐较繁琐!