zoukankan      html  css  js  c++  java
  • 通过反射来将一个类的内容转换到另外一个类里

    主函数:

    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里多的属性会变味默认值。

  • 相关阅读:
    打印机故障之乌龙事件
    为什么 FastAdmin 的插件不全部免费?
    PADS Logic 脚本的 Fields 一个对象记录
    时间模块和random模块

    模块的导入和使用
    递归函数与二分查找算法
    递归函数
    匿名函数
    内置函数
  • 原文地址:https://www.cnblogs.com/kincolle/p/7245390.html
Copyright © 2011-2022 走看看