Java实现不同List对象之间的相互转换
编写工具类ListConverterUtils
代码如下:
public class ListConverterUtils<T, F> { private final Class<F> fClazz; / * 构造方法,传入目标List的Class对象 * * @param fClazz */ public ListConverterUtils(Class<F> fClazz) { this.fClazz = fClazz; } / * 将List转换为List * * @param pList * @return */ public List<F> converterList(List<T> pList) { if (pList != null && pList.size() != 0) { List<F> dList = new ArrayList<>(); try { Iterator var3 = pList.iterator(); while (var3.hasNext()) { T t = (T) var3.next(); F f = this.fClazz.newInstance(); BeanUtils.copyProperties(t, f); dList.add(f); } } catch (Exception var6) { var6.printStackTrace(); } return dList; } else { return new ArrayList<>(); } }}
使用方法:
加入有两个类,分别为User
和UserDto
,实现List转换代码如下:
public class Test{ public static void main(String[] args) {// 构建User对象 User user = new User(); // 设置参数 user.setId("id"); user.setName("name"); // 封装List集合 List<User> userList = new ArrayList<>(); userList.add(user); // 将List转List ListConverterUtils converterUtils = new ListConverterUtils(UserDto.class); List<UserDto> list = converterUtils.converterList(userList); }}