博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java bean 对象属性复制框架BeanMapping-01-入门案例
阅读量:6915 次
发布时间:2019-06-27

本文共 1902 字,大约阅读时间需要 6 分钟。

项目简介

用于 java 对象属性赋值。

项目中经常需要将一个对象的属性,赋值到另一个对象中。

常见的工具有很多,但都多少不够简洁,要么不够强大。

特性

  • 支持对象属性的浅拷贝

变更日志

快速开始

准备

JDK1.8 及其以上版本

Maven 3.X 及其以上版本

maven 项目依赖

com.github.houbb
bean-mapping-core
0.0.1

核心类说明

BeanUtil

提供一个简单的静态方法 copyProperties。

/** * 复制属性 * 将 source 中的赋值给 target 中名称相同,且可以赋值的类型中去。类似于 spring 的 BeanUtils。 * @param source 原始对象 * @param target 目标对象 */public static void copyProperties(final Object source, Object target)

测试代码参考

详情参见 bean-mapping-test 模块下的测试代码。

示例代码

对象的定义

  • BaseSource.java & BaseTarget.java

其中 BaseSource 对象和 BaseTarget 对象的属性是相同的。

public class BaseSource {    /**     * 名称     */    private String name;    /**     * 年龄     */    private int age;    /**     * 生日     */    private Date birthday;    /**     * 字符串列表     */    private List
stringList; //getter & setter}

属性赋值测试案例

我们构建 BaseSource 的属性,然后调用

BeanUtil.copyProperties(baseSource, baseTarget);

类似于 spring BeanUtils 和 Apache BeanUtils,并验证结果符合我们的预期。

/**     * 基础测试     */    @Test    public void baseTest() {        BaseSource baseSource = buildBaseSource();        BaseTarget baseTarget = new BaseTarget();        BeanUtil.copyProperties(baseSource, baseTarget);        // 断言赋值后的属性和原来相同        Assertions.assertEquals(baseSource.getAge(), baseTarget.getAge());        Assertions.assertEquals(baseSource.getName(), baseTarget.getName());        Assertions.assertEquals(baseSource.getBirthday(), baseTarget.getBirthday());        Assertions.assertEquals(baseSource.getStringList(), baseTarget.getStringList());    }    /**     * 构建用户信息     * @return 用户     */    private BaseSource buildBaseSource() {        BaseSource baseSource = new BaseSource();        baseSource.setAge(10);        baseSource.setName("映射测试");        baseSource.setBirthday(new Date());        baseSource.setStringList(Arrays.asList("1", "2"));        return baseSource;    }

转载地址:http://ioicl.baihongyu.com/

你可能感兴趣的文章
Function
查看>>
Tomcat意外宕机分析
查看>>
LeetCode——58 Java之最后一个单词的长度
查看>>
ZetCode PyQt4 tutorial basic painting
查看>>
WPF RichTextBox的Document属性的序列化与反序列化
查看>>
显示照片方法之一
查看>>
InfoPath读取List到重复表
查看>>
微信公众平台二 文本编辑器与表单工具
查看>>
常用的php函数库
查看>>
迭代器 生成器
查看>>
初始Winsock编程
查看>>
jQuery实现表格拖动排序
查看>>
011_URL和Ajax辅助器方法
查看>>
六种排序算法C语言版(上)
查看>>
Jenkins学习系列——节点的配置
查看>>
系统一般信息监控查看shell.磁盘,负载等达阀值告警机制,改进测试中.
查看>>
HDU5306:Gorgeous Sequence——题解
查看>>
linux开发模式
查看>>
初试 Kubernetes 集群中使用 Traefik 反向代理
查看>>
Spring+SpringMVC+MyBatis的pom.xml依赖
查看>>