BeanUtils.copyProperties 详解

BeanUtils.copyProperties 详解简介BeanUtils提供对Java反射和自省API的包装,其主要目的是利用反射机制对JavaBean的属性进行处理我们知道,一个JavaBean通常包含了大量的属性,很多情况下,对JavaBean的处理导致大量get/set代码堆积,增加了代码长度和阅读代码的难度用法BeanUtils是这个包里比较常用的一个工具类,这里只介绍它的copyProperties()方法,该方法定义如下:publicstaticvoidcopyProperties(Object

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

Jetbrains全系列IDE稳定放心使用

简介
BeanUtils 提供对 Java 反射和自省 API 的包装,其主要目的是利用反射机制对 JavaBean 的属性进行处理

我们知道,一个 JavaBean 通常包含了大量的属性,很多情况下,对 JavaBean 的处理导致大量 get/set 代码堆积,增加了代码长度和阅读代码的难度

用法
BeanUtils 是这个包里比较常用的一个工具类,这里只介绍它的 copyProperties() 方法,该方法定义如下:

public static void copyProperties(Object source, Object target) throws BeansException { 
   
    copyProperties(source, target, (Class)null, (String[])null);
}

如果你有两个具有很多相同属性的 JavaBean,传统的方式是使用类似下面的语句对属性逐个赋值:

Person p = new Person();
p.setName("Ensk");
p.setAge(18);
p.setGender(1);
p.setMajor("Literature");

Teacher t = new Teacher();
t.setName(p.getName());
t.setAge(p.getAge());
t.setGender(p.getGender());
t.setMajor(p.getMajor());

而使用 BeanUtils 后,代码就大大改观了,如下所示:

Person p = new Person();
p.setName("Ensk");
p.setAge(18);
p.setGender(1);
p.setMajor("Literature");

Teacher t = new Teacher();

BeanUtils.copyProperties(p,t);

如果 Person 和 Teacher 间存在名称不相同的属性,则 BeanUtils 不对这些属性进行处理,需要程序手动处理

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

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

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


相关推荐

  • 认识计算机教案_认识计算机硬件教案

    认识计算机教案_认识计算机硬件教案认识计算机教案Tag内容描述:1、第一单元计算机基础知识项目2认识计算机系统【项目目标】了解计算机硬件、软件系统的组成及作用;了解计算机主要部件及其作用;会利用数据存储单位区分存储空间大小;了解计算机主要技术指标及其对性能的影响;理解二进制基本概念及常用数制之间的转换方法;理解ASCII码的基本概念,了解计算机编码规则。任务1认识计算机硬件【任务说明】我们通常看到的微…

    2022年5月3日
    62
  • memwatch使用[通俗易懂]

    memwatch使用[通俗易懂]一、简介memwatch可以跟踪程序中的内存泄漏和错误,能检测双重释放(double-free)、错误释放(erroneousfree)、没有释放的内存(unfreedmemory)、溢出(Overflow)、下溢(Underflow)等。下载地址:http://www.linkdata.se/sourcecode/memwatch/解压后,得到源码memwa

    2022年7月13日
    19
  • Java的8个Java日志工具[通俗易懂]

    摘要:本文要来分享一些Java程序员最常用的Java日志框架组件。日志工具log4j–最受欢迎的Java日志组件Log4j是一款基于Java的开源日志组件,Log4j功能非常强大,我们可以将日志信息输出到控制台、文件、用户界面,也可以输出到操作系统的事件记录器和一些系统常驻进程。更值得一提的是,Log4j可以允许你非常便捷地自定义日志格式和日志等级,可以帮助开发人员全方位地掌控…

    2022年4月9日
    495
  • 十个PHP 高级工程经典面试题[通俗易懂]

    十个PHP 高级工程经典面试题

    2022年2月15日
    34
  • @GetMapping和@GetMapping(value=““)的区别纪要「建议收藏」

    问题:@GetMapping指定value和不指定value的区别是什么?背景:刚开始接触时的理解@GetMapping是不需要有value的,以为没有指定的value就无法访问对应的请求接口.后来经过实战和学习……今天有空来立项说明一下.答案: 1.首先要清楚@GetMapping的标准写法肯定是有对应的value指向的. 2.对于没有对应value指向的@GetMapping有且只有一个.在这种情况下当你的路径指向这个@GetMapping的上级路径时系统会默认找寻该.

    2022年4月7日
    160
  • DELL服务器数据恢复成功案例

    DELL服务器数据恢复成功案例DELLEqualLogicPS6100采用虚拟ISCSISAN阵列,为远程或分支办公室、部门和中小企业存储部署带来企业级功能、智能化、自动化和可靠性。以简化的管理、快速的部署及合理的价格满足了分支办公室和中小企业的存储需求,同时提供全套企业级数据保护和管理功能、可靠的性能、可扩展性和容错功能,是中型企业级存储的起点产品,但某些物理故障或其他操作都可能会对卷或存储造成破坏,因此对系列存储的数…

    2022年6月30日
    28

发表回复

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

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