Java之兩個不一樣對象的List copy相同的屬性

業務中遇到,使用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

相關文章
相關標籤/搜索