这是工具类
public class FactoryBeanUtil {
/**
* 将源对象属性值赋给目标对象属性
*
* @param src
* @param clazz
* @param <T>
* @return
* @throws Exception
*/
public static <T> T copyProperties(Object src, Class<T> clazz) {
if (src == null)
return null;
T target = BeanUtils.instantiate(clazz);
BeanUtils.copyProperties(src, target);
return target;
}
/**
* 将源list集合对象属性值赋给目标list集合对象属性
*
* @param src
* @param clazz
* @param <T>
* @return
* @throws Exception
*/
public static <T> List<T> copyPropertiesList(List<Object> src, Class<T> clazz) {
if (src == null)
return null;
List<T> list = new ArrayList<T>();
Iterator iterator = src.iterator();
while(iterator.hasNext()){
list.add(copyProperties(iterator.next(), clazz));
}
return list;
}
}
当如此调用的时候回报错
FactoryBeanUtil.copyPropertiesList(list, OpNewsDTO.class);
报错:
The method copyPropertiesList(List<Object>, Class<T>) in the type FactoryBeanUtil is not applicable for the arguments (List<OpNewsDO>, Class<OpNewsDTO>)
系统建议我转换成这个样子
:public static <T> List<T> copyPropertiesList(List<OpNewsDO> list2, Class<OpNewsDTO> class1)
请问如何修改这个方法才可以使用
public static <T> List<T> copyPropertiesList(List<T> src, Class<T> clazz)
你的方法里也没使用src啊.
不好意思,代码写的有点问题,我改了。但是您说的这种方法还是不行。
我要做的是吧一个VO转换成另一个VO,但是是个list集合。所以写了写了下边这个方法。
@猿==猿: 那就是
public static <T,T2> List<T> copyPropertiesList(List<T2> src, Class<T> clazz)
这样吗?
Class<T> clazz
这个参数什么意义?只是传个类型吗?
为何不直接public static <T> List<T> copyPropertiesList<T>(List<T> src)
因为我要把List<OpNewsDO>,转化成List<OpNewsDTO> ,所以不能改成您说的这种方法。