Java两个类或者集合之间相互转换最简单实用的两种方法,拒绝挨个set让你的代码变简洁~~~
方法一:当两个类字段完全一样的情况下可以使用org.springframework.beans包下的BeanUtils.copyProperties方法。//初始化需要接受参数的类ConfigQueryDTO dto = new ConfigQueryDTO();//第一个参数为原始类,第二个是我们刚才声明的需要转换的类//这种方法只能转换两个类里面相同参数类别和名称的字段BeanUtils.co
·
作为一个专业帅气的后端,挨个set就太low了,下面给大家推荐两种实用的方法~
方法一:当两个类字段完全一样的情况下可以使用org.springframework.beans包下的BeanUtils.copyProperties方法。
//初始化需要接受参数的类
ConfigQueryDTO dto = new ConfigQueryDTO();
//第一个参数为原始类,第二个是我们刚才声明的需要转换的类
//这种方法只能转换两个类里面相同参数类别和名称的字段
BeanUtils.copyProperties(queryDTO, dto);
通过源码我们可以看到这种方法是支持集合间相互转换的
方法二(墙裂推荐):当两个类字段不一样的情况下可以使用下面这种写法(@mapping注明两个类里面不一样的字段或者直接赋值):
@Mapper(componentModel = "spring")
public interface Convert {
/**
* INSTANCE实例
*/
Convert INSTANCE= Mappers.getMapper(Convert.class);
/**
* 将OutA转成OutB
* @param outA
* @return OutB
*/
@Mappings({
@Mapping(source = "docId",target = "docSysId"),
@Mapping(target = "roomId",defaultValue = "0"),
@Mapping(target = "recordStatus",defaultValue = "0"),
@Mapping(target = "firstFlag",defaultValue = ""),
@Mapping(source = "hisCreateTime",target = "visitTime")
})
OutB covnertOutaToOutb(OutA outA);
//集合间相互转换
List<OutB> listConvert(List<OutA> outAList);
}
调用: Convert .INSTANCE.方法名(参数)
更多推荐
已为社区贡献3条内容
所有评论(0)