首页 > 其他分享 >属性复制和转换

属性复制和转换

时间:2022-08-22 08:44:35浏览次数:55  
标签:src 转换 Field field 复制 dist null distField 属性

属性复制和转换

public static <X> X toBean(Object src, Class<X> t) {
    if (t == null) {
        return null;
    }
    X instance = null;
    try {
        instance = t.newInstance();
        if (src != null) {
            copyProperties(src, instance);
        }
    } catch (InstantiationException | IllegalAccessException e) {
        e.printStackTrace();
    }
    return instance;
}

public static void copyProperties(Object src, Object dist) {
    if (src == null || dist == null) {
        return;
    }
    Field[] srcFields = src.getClass().getDeclaredFields();
    Field[] distFields = dist.getClass().getDeclaredFields();
    for (Field field : srcFields) {
        if ("serialVersionUID".equals(field.getName())) {
            continue;
        }
        try {
            field.setAccessible(true);
            Object o = field.get(src);
            if (o == null) {
                continue;
            }
            for (Field distField : distFields) {
                if (field.getName().equalsIgnoreCase(distField.getName())) {
                    distField.setAccessible(true);
                    distField.set(dist, o);
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

标签:src,转换,Field,field,复制,dist,null,distField,属性
From: https://www.cnblogs.com/muphy/p/16611658.html

相关文章

  • 复制
    ##什么是复制复制是指分布系统中,多台机器上保持相同副本的机制.##多副本能够解决的问题?1.地理位置上的副本,能够降低延迟.高性能2.部分组件失效后,系统依然能够工......
  • Java时间格式:yyyy-mm-dd转换为yyyy年mm月dd日
    Java时间格式:yyyy-mm-dd转换为yyyy年mm月dd日1:sql直接操作SELECTDATE_FORMAT(‘2022-01-04’,’%Y年%m月%d日’)--结果就是:2022年01月04日122:java格式化操作......
  • 各种进制之间的转换
    二进制简写:bin逢二进一,表现形式只有010(二进制)#01#110#211#3100#4101#5110#6111#71000#8八进制octal缩写oct逢八进一,表现形式只有011(八进制)#18#810#820#16十六......
  • 深入flex 中align-items属性
    设置外层盒子flex显示宽度为自己盒子本身宽度高度被拉高整个盒子设置为垂直方向的对齐方式align-items:flex-start 盒子不将被拉伸显示元素本身的高度align-item......
  • [delphi踩坑] ActiveList成员取名不能与属性名相同
      刚开始新建时,我acok是取名为mrok,acno是取名mrno,所以直接弹错"TModalResult" 与 "TAction"不兼容最后是在重写ModalResult:=mr....时,看到mrok和mrno提示后面......
  • JAVA对象与JSON转换的各种方法-fastjson
    1<!--https://mvnrepository.com/artifact/com.alibaba/fastjson-->2<dependency>3<groupId>com.alibaba</groupId>4<artifactId>fastjson</artifactId>......
  • JSON数据和Java对象的相互转换
    JSON数据和Java对象的相互转换JSON解析器创建的解析器:Jsonlib,Gson,Fastjson,jacksonJSON转为Java对象使用步骤:导入jackson相关的jar包创建Jackson革新对象Obje......
  • python输入和类型转换
    输入获取用户使用键盘录入的内容使用的函数是input()变量=input(‘提示的信息’)1.代码从上到下执行,遇到input函数之后 类型转换根据代码的需要,将一种数据类型......
  • flex项目的属性rder、flex-grow、flex-shrink、flex-basis、flex、align-self
    1、order属性定义项目的排列顺序.item{order:<integer>;}2、flex-grow属性定义项目的放大比例,默认为0,即如果存在剩余空间,也不放大.item{flex-grow:<number>;;......
  • flex项目属性align-self属性重写align-item属性
    <style>#main{width:220px;height:300px;border:1pxsolidblack;display:-webkit-flex;/*Safari*/-webkit-align-items:flex-start;/*Saf......