热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用BeanUtils.copyProperties复制对象的属性

POM文件的依赖org.springframeworkspring-beans

POM文件的依赖

org.springframeworkspring-beans5.1.8.RELEASE

Father类 father.

import java.time.LocalDate;/*** @author MyHarpers 2020/5/14 21:50*/
public class Father {private String name;private Long age;private LocalDate birthday;private String father;public String getName() {return name;}public void setName(String name) {this.name = name;}public Long getAge() {return age;}public void setAge(Long age) {this.age = age;}public LocalDate getBirthday() {return birthday;}public void setBirthday(LocalDate birthday) {this.birthday = birthday;}public String getFather() {return father;}public void setFather(String father) {this.father = father;}@Overridepublic String toString() {return "Father [name=" + name + ", age=" + age + ", birthday=" + birthday + ", father=" + father + "]";}
}

Son类 son.

import java.time.LocalDate;/*** @author MyHarpers 2020/5/14 21:50*/
public class Son {private String name;private Long age;private LocalDate birthday;private String son;public String getName() {return name;}public void setName(String name) {this.name = name;}public Long getAge() {return age;}public void setAge(Long age) {this.age = age;}public LocalDate getBirthday() {return birthday;}public void setBirthday(LocalDate birthday) {this.birthday = birthday;}public String getSon() {return son;}public void setSon(String son) {this.son = son;}@Overridepublic String toString() {return "Father [name=" + name + ", age=" + age + ", birthday=" + birthday + ", son=" + son + "]";}
}

测试类Test

import org.springframework.beans.BeanUtils;import java.time.LocalDate;
import java.util.Optional;/*** @author MyHarpers 2020/5/14 21:59*/
public class Test {private static Son convertToSon(Father father) {return Optional.ofNullable(father).map(o -> {Son entity = new Son();BeanUtils.copyProperties(father, entity);return entity;}).orElseThrow(IllegalArgumentException::new);}public static void main(String[] args) {Father father = new Father();father.setAge(8L);father.setBirthday(LocalDate.now());father.setName("姓名");father.setFather("父亲");System.out.println(father);Son son = convertToSon(father);System.out.println(son);son.setSon("儿子");System.out.println(son);}
}

输出的消息

Father [name=姓名, age=8, birthday=2020-05-14, father=父亲]
Father [name=姓名, age=8, birthday=2020-05-14, son=null]
Father [name=姓名, age=8, birthday=2020-05-14, son=儿子]

推荐阅读
  • 探讨如何在C++中,当子类实例存储在父类类型的向量中时,正确访问子类特有的成员变量或方法。 ... [详细]
  • 本文探讨了如何利用自定义URI方案和注册表编辑,在Windows操作系统中实现从Web浏览器启动本地应用程序的方法,同时强调了这一过程中的安全考虑。 ... [详细]
  • 本文介绍如何使用Java实现AC自动机(Aho-Corasick算法),以实现高效的多模式字符串匹配。文章涵盖了Trie树和KMP算法的基础知识,并提供了一个详细的代码示例,包括构建Trie树、设置失败指针以及执行搜索的过程。 ... [详细]
  • 本文深入探讨了Java注解的基本概念及其在现代Java开发中的应用。文章不仅介绍了如何创建和使用自定义注解,还详细讲解了如何利用反射机制解析注解,以及Java内建注解的使用场景。 ... [详细]
  • 导读上一篇讲了zsh的常用字符串操作,这篇开始讲更为琐碎的转义字符和格式化输出相关内容。包括转义字符、引号、print、printf的使用等等。其中很多内容没有必要记忆,作为手册参 ... [详细]
  • 本文详细介绍了 C# 编程语言中 Main 方法的作用、不同形式及其使用场景,帮助开发者更好地理解和应用这一重要概念。 ... [详细]
  • 设计模式笔记12:迭代器模式(Iterator Pattern) ... [详细]
  • 本文介绍了NHibernate中通过定义接口和实现类来管理会话工厂的方法,包括接口的优势、模型文件夹的结构以及具体的代码示例。 ... [详细]
  • 本文档提供了几个经典的Java编程示例,包括多线程处理、基本程序结构以及简单的逻辑运算,旨在帮助初学者更好地理解和掌握Java语言的核心特性。 ... [详细]
  • 本文详细探讨了UML用例图中的两种重要关系——包含关系和扩展关系,通过具体示例解析这两种关系的应用场景及其实现方式。 ... [详细]
  • 本文探讨了在Android平台下编写和读取.JSON文件的方法,解决读取文件时遇到的字符间异常空格问题。 ... [详细]
  • VSCode中使用Clang-Format进行C/C++代码格式化配置
    本文介绍了如何在VSCode中配置Clang-Format以实现C/C++代码的自动格式化,包括安装必要的扩展、配置文件的创建以及常用设置的解释。建议阅读官方文档以获取更多详细信息。 ... [详细]
  • 计算机视觉中的行为识别:步态分析的ReID应用
    本文介绍了一项基于步态的行为识别(ReID)项目,通过步态特征实现个体身份的准确识别。文中展示了项目的基本原理、特征提取方法及其实现效果。 ... [详细]
  • 本文深入探讨了企业级开发框架NHibernate和Spring.NET的关键特性之一——面向方面编程(AOP)。文章不仅介绍了AOP的基本概念及其如何增强面向对象编程(OOP),还详细说明了Spring.NET中AOP的具体应用,包括事务管理和自定义方面的实现。 ... [详细]
  • 手把手教你构建简易JSON解析器
    本文将带你深入了解JSON解析器的构建过程,通过实践掌握JSON解析的基本原理。适合所有对数据解析感兴趣的开发者。 ... [详细]
author-avatar
歪果仁
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有