業務中遇到,使用Mybatis generator生成的Example和Mapper從數據庫查詢結果,該結果使用的實體類是和數據庫字段一一對應的,可是不想把該實體類的全部屬性都返回給前端,因而新建一個實體類,其中只有前端須要的屬性,而後想把List<UserA>中的對象所有拷貝到List<UserB>中,其中UserA屬性多,UserB屬性少,字段名是同樣的。前端
方法1:使用Spring的BeanUtils.copyProperties()或者PropertyUtils.copyProperties()java
將List1循環,將UserA中須要的屬性Set到UserB中。這個方法略麻煩,由於還須要循環,而且建立新對象。數據庫
方法2:藉助FastJson的Json和對象轉換的功能json
具體實現就是,將對象(或者List)轉換爲json,而後再將json信息轉換爲指定的對象(或者指定對象的List),具體代碼貼在下面:app
/** * 從List<A> copy到List<B> * * @param list * @param clazz * @param <T> * @return */ public static <T> List<T> copy(List<?> list, Class<T> clazz) { String oldOb = JSON.toJSONString(list); return JSON.parseArray(oldOb, clazz); } /** * 從對象A copy到 對象B * * @param ob A * @param clazz B.class * @return B */ public static <T> T copy(Object ob, Class<T> clazz) { String oldOb = JSON.toJSONString(ob); return JSON.parseObject(oldOb, clazz); }
Refer:https://blog.csdn.net/hw120219/article/details/89536440.net