开发时, 很多时候我们需要实现 List 的复制, 如果使用For循环复制, 需要写好几行代码, 也不能复用 .
其实我们可以借助泛型写一个通用的方法, 以后都可使用这个方法实现List 的复制 .
- /**
- * 复制集合
- * @param <E>
- * @param source
- * @param destinationClass
- * @return
- * @throws InstantiationException
- * @throws InvocationTargetException
- * @throws IllegalAccessException
- */
- public static <E> List<E> copyTo(List<?> source, Class<E> destinationClass) throws IllegalAccessException, InvocationTargetException, InstantiationException{
- if (source.size()==0) return Collections.emptyList();
- List<E> res = new ArrayList<E>(source.size());
- for (Object o : source) {
- E e = destinationClass.newInstance();
- BeanUtils.copyProperties(e, o);
- res.add(e);
- }
- return res;
- }