参考:https://www.oracle.com/technetwork/cn/articles/java/juneau-generics-2255374-zhs.html
E:元素
K:键
N:数字
T:类型
V:值
S、U、V 等:多参数情况中的第 2、3、4 个类型
例子代码:
public static <T,S> List<S> copyList(List<T> fromList,Class<S> toObj) { if (CollUtil.isEmpty(fromList)) { log.error("Utils-->copyList:fromList is null or have'nt data"); return null; } if (null == toObj) { log.error("Utils-->copyList:toObj is null"); return null; } List<S> toList = CollUtil.newArrayList(); fromList.forEach(f->{ S t = null; try { t = toObj.newInstance(); } catch (Exception e) { e.printStackTrace(); } BeanUtil.copyProperties(f, t); toList.add(t); }); return toList; }
调用:
@Test public void testCopyList() throws Exception { List<DictDO> fromList = CollUtil.newArrayList(new DictDO("code1","name1"),new DictDO("code2","name2")); List<DictPojo> toList = Utils.copyList(fromList, DictPojo.class); Console.log("{},{}",toList.size(),CollUtil.isEmpty(toList)); if (null != toList && toList.size()>0) { toList.forEach(d->{ Console.log(d); }); } }
输出:
2,false
DictPojo(code=code1, name=name1)
DictPojo(code=code2, name=name2)