通过反射来将一个类的内容转换到另外一个类里

主函数:

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.ValueFilter;
import com.google.common.base.Preconditions;

import java.lang.reflect.Field;
import java.lang.reflect.Modifier;


public
class leijun { public static void main(String[] args) { A a = new A(); B b1 =ObjectUtils.mapObject(B.class,a); System.out.println(b1.a); System.out.println(b1.des); System.out.println(b1.desdep); } }

通过反射来转换的代码:

class ObjectUtils {
    public static <T> T  mapObject(Class<T> clazz, Object o){
        Preconditions.checkNotNull(clazz);
        Preconditions.checkNotNull(o);
        String json = JSON.toJSONString(o);
        T res = JSON.parseObject(json, clazz);
        return res;
    }
}

实体:

class A{
    int a=1;
    int b=1;
    String des ="wuhan";
    String dep ="xiantao";
    public String getDes() {
        return des;
    }

    public void setDes(String des) {
        this.des = des;
    }

    public String getDep() {
        return dep;
    }

    public void setDep(String dep) {
        this.dep = dep;
    }
    public int getA() {
        return a;
    }

    public void setA(int a) {
        this.a = a;
    }

    public int getB() {
        return b;
    }

    public void setB(int b) {
        this.b = b;
    }
}
实体A
class B{
    int a;
    String desdep;
    String des;
    String dep;

    public String getDesdep() {
        return desdep;
    }

    public void setDesdep(String desdep) {
        this.desdep = desdep;
    }

    public int getA() {
        return a;
    }

    public void setA(int a) {
        this.a = a;
    }

    public String getDep() {
        return dep;
    }

    public void setDep(String dep) {
        this.dep = dep;
    }

    public String getDes() {
        return des;
    }

    public void setDes(String des) {
        this.des = des;
}
   }
实体B

运行结果为:

1
wuhan
null

Process finished with exit code 0

总结:A类里多的属性不会赋值到B里,B里多的属性会变味默认值。

原文地址:https://www.cnblogs.com/kincolle/p/7245390.html