领域模型命名规约:
数据对象:xxxPo,xxx即为数据表名, 对象属性和表字段对应;
数据传输对象:xxxDto,xxx为业务领域相关的名称,前端向后端传递对象,GRPC,及其他数据对象传输统一使用Dto后缀;
展示对象:xxxVo,xxx一般为view名称;
业务处理对象:xxxBo,xxx为业务领域相关的名称.
注:需要实体类中的字段完全一致才能互转
package ;
import ;
import ;
import ;
import ;
public final class ClazzConverter {
private ClazzConverter() {
}
//两个实体类互转
public static <T1, T2> T1 converterClass(final T2 srcClazz, Class<T1> dstClazz) {
String str = (srcClazz);
return str != null && !().equals("") ? ((), dstClazz) : null;
}
//转List
public static <T1, T2> List<T1> converterClass(final List<T2> srcList, Class<T1> dstClazz) {
List<T1> list = new ArrayList();
if (srcList != null && !()) {
String str = (srcList);
if (str != null && !().equals("")) {
List<T1> list = ((), dstClazz);
return (List)(list == null ? new ArrayList() : list);
} else {
return list;
}
} else {
return list;
}
}
public static <T1, T2> Collection<T1> converterClass(final Collection<T2> srcList, Class<T1> dstClazz) {
List<T1> list = new ArrayList();
if (srcList != null && !()) {
String str = (srcList);
if (str != null && !().equals("")) {
Collection<T1> c = ((), dstClazz);
return (Collection)(c == null ? list : c);
} else {
return list;
}
} else {
return list;
}
}
}
例如:
1.两个实体类互转
UserDTO userDTO = (userPO,);
<UserPO>转为List<UserDTO>
List<UserDTO> userDTOList = (List<UserDTO>)(userPOList,);