1. 程式人生 > >java泛型&bean copy list

java泛型&bean copy list

instance war tac for throw int ons throws prop

參考: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)

java泛型&bean copy list