BeanUtils中copyProperties的使用[通俗易懂]

BeanUtils中copyProperties的使用[通俗易懂]BeanUtils中copyProperties的作用是将一个对象中的属性值赋值(拷贝)给另一个对象中对应的属性。其中赋值成功的属性对应的属性名和属性类型必须相同,否则对应的属性值不会从一个对象赋值给另一个对象,但是此时不影响其他属性值的拷贝。1、实体类publicclassModel01{privateStringname;privateintage;

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

BeanUtils中copyProperties的作用是将一个对象中的属性值赋值(拷贝)给另一个对象中对应的属性,并且对象之间可以没有任何联系。其中赋值成功的属性对应的属性名和属性类型必须相同,否则对应的属性值不会从一个对象赋值给另一个对象,但是此时不影响其他属性值的拷贝。具体如下所示。

1、实体类

public class Model01 {
    private String name;
    private int age;
    private String city;

    @Override
    public String toString() {
        return "Model01{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", city='" + city + '\'' +
                '}';
    }
}
public class Model02 {
    private String name;
    private String age;
    private String city;

    @Override
    public String toString() {
        return "Model02{" +
                "name='" + name + '\'' +
                ", age='" + age + '\'' +
                ", city='" + city + '\'' +
                '}';
    }
}

2、将符合条件的属性值全部从一个对象赋值给另一个对象——copyProperties(Object source, Object target)

public class App {
    public static void main( String[] args ) {
        Model01 model01 = new Model01();
        Model02 model02 = new Model02();
        model01.setName("jack66");
        model01.setAge(12);
        model01.setCity("gz");
        model02.setName("henry");
        model02.setAge("32");
        model02.setCity("sz");
        BeanUtils.copyProperties(model01,model02);
        System.out.println(model01);
        System.out.println(model02);
    }
}

打印结果

Model01{name='jack66', age=12, city='gz'}
Model02{name='jack66', age='32', city='gz'}

3、忽略某些属性的赋值——copyProperties(Object source, Object target, String… ignoreProperties)

public class App {
    public static void main( String[] args ) {
        Model01 model01 = new Model01();
        Model02 model02 = new Model02();
        model01.setName("jack66");
        model01.setAge(12);
        model01.setCity("gz");
        model02.setName("henry");
        model02.setAge("32");
        model02.setCity("sz");
        String[] ignoreProperties = {"name"};
        BeanUtils.copyProperties(model01,model02,ignoreProperties);
        System.out.println(model01);
        System.out.println(model02);
    }
}

打印结果

Model01{name='jack66', age=12, city='gz'}
Model02{name='henry', age='32', city='gz'}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/186426.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • idea替换内容快捷键_intellij快捷键

    idea替换内容快捷键_intellij快捷键ctrl+r:当前文件内容替换,指的是在当前打开的文件中替换匹配的字符,只操作一个文件。ctrl+shift+r:在路径中替换,指的是在选定的目录下或者类包下,查找要被替换的字符,再在第二个输入框中输入要替换的字符,点击弹出框的右下角的replace或者replaceall即可。…

    2022年9月29日
    0
  • windows虚拟内存机制

    windows虚拟内存机制

    2022年3月6日
    61
  • Stm32的GPIO驱动继电器[通俗易懂]

    Stm32的GPIO驱动继电器[通俗易懂]三极管三极管S8050-D:直插的字体面向自己从左到右依次是发射极E,基极B,集电极C类型:NPN集电极耗散功率Pc:0.625W(贴片:0.3W)集电极电流Ic:0.5A集电极-基极电压Vcbo:40V集电极-发射极电压Vceo:25V集电极-发射极饱和电压Vce(sat):0.6V特征频率f:最小150MHz按三极管后缀号分为BCD档贴片为LH档放大倍数:B85-160C120-200D160-300L100-200H200-350上图中,左边的GPIO

    2022年6月24日
    117
  • windows fastcgi「建议收藏」

    windows fastcgi「建议收藏」一.编译apachefastcgi模块  1.编译mod_fastcgi.so  方式一: mod_fastcgi/Win32目录下有mod_fastcgi.dsp和mod_fastcgi_AP2.dsp两个工程文件,但是无法用vc6打开,只能手动编译,文章参见: http://blog.csdn.net/feisan/article/details/1813482…

    2022年7月15日
    17
  • python日志格式[通俗易懂]

    python日志格式[通俗易懂]python输出日志时的格式化输出日志时的格式化名称 说明%(levelno)s 打印日志级别的数值%(levelname)s 打印日志级别名称%(pathname)s 打印当前执行程序的路径,其实就是sys.argv[0]%(filename)s 打印当前执行程序名%(funcName)s 打印日志的当前函数%(lineno)d 打印日志的当前行号%(asctime)s 打印日…

    2022年6月9日
    50
  • Java代码 打印九九乘法表

    Java代码 打印九九乘法表Java打印九九乘法表publicclassFor_Demo04{publicstaticvoidmain(String[]args){//打印99乘法表for(intj=1;j<10;j++){for(inti=1;i<10;i++){if(i<=j){

    2022年7月15日
    18

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号