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



