这里主要讲的是,不同的类中有相同的字段,而相同字段的值可以转换,集合也是如此。
这里只需要一个阿里的fastJson的包即可。
如:
package com.wh.blog.test.wh;
import com.alibaba.fastjson.JSON;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
/**
*
* 工具转换类
* @author
*
*/
public class ConverterUtils {
/**
* 对象转换方法 通过JSON正反序列化的方式实现
*
* @param <T>
* @param <V>
* @param v
* @param clazz
* @return
*/
public static <T, V> T convertObject(V v, Class<T> clazz) {
if (Objects.isNull(v)) {
return null;
}
String jsonStr = JSON.toJSONString(v);
T t = null;
try {
t = JSON.parseObject(jsonStr, clazz);
} catch (Exception e) {
e.printStackTrace();
}
return t;
}
/**
* List转换方法
*
* @param listV
* @param clazz
* @param <T>
* @param <V>
* @return
*/
public static <T, V> List<T> convertList(List<V> listV, Class<T> clazz) {
if(listV == null) {
return null;
}
List<T> listT = new ArrayList<T>();
try {
for (V v : listV) {
T t = convertObject(v, clazz);
listT.add(t);
}
} catch (Exception e) {
e.printStackTrace();
}
return listT;
}
public static void main(String[] args) {
List<Ghost> ghostList = new ArrayList();
Ghost g1 = new Ghost();
g1.setName("小鬼1");
g1.setAge(1);
Ghost g2 = new Ghost();
g2.setName("小鬼2");
g2.setAge(2);
ghostList.add(g1);
ghostList.add(g2);
List<Person> pList = ConverterUtils.convertList(ghostList,Person.class);
System.out.println(JSON.toJSONString(pList));
}
}