javaBean间属性拷贝有两种方式。
1.使用PropertyUtils.copyProperties()拷贝一个bean中的属性到另一个bean中,第一个参数是目标bean,第二个参数是源bean,代码片段见下
Book srcBook = new Book();
srcBook.setName("爱你是我的错");
Novel novel= new Novel();//小说具有书的属性。
PropertyUtils.copyProperties(novel, srcBook);
// 输出
// 爱你是我的错
System.out.println(novel.getName());
PropertyUtils.copyProperties()将检索源bean中所有的属性,然后将其值分配给目标bean中相同的属性,如果上面的例子中Book bean有一个author属性,类型是Person,这个方法将分配其的references给destBook,也就是说copyProperties()方法不会克隆属性的值.只是拷贝一个对象在内存中的地址而已,看下面的代码片段
Person author = new Person();
author.setName("小欧");
Book srcBook = new Book();
srcBook.setName("爱你是我的错");
srcBook.setAuthor(author);
Novel novel= new Novel();//小说具有书的属性。
PropertyUtils.copyProperties(novel, srcBook);
// 作者的内存地址一样
// 作者的内存地址一样
if (srcBook.getAuthor() == novel.getAuthor()) {
System.out.println("作者的内存地址一样");
}
copyProperties()方法也能将Map中的内容分酌给bean,如果key同目标bean的属性名相同的话
Map srcMap = new HashMap();
srcMap.put("name", "爱你是我的错");
Book destBook = new Book();
PropertyUtils.copyProperties(destBook, srcMap);
// 输出
// 爱你是我的错
System.out.println(destBook.getName());
2.Cglib提供了类似的功能,以字节码增强的形式
CSDN中已有一篇(http://blog.csdn.net/pengrg166/archive/2007/01/03/1472842.aspx)过两天再贴上我的案例:
分享到:
相关推荐
Student student=new Student(); (Student2)student //在这个表达式(记得光标在表达式里面哦)按下alt+Enter,选中“哟嚯。。。好爽啊”就能自动生成下面代码 Student2 student2=new Student2();...
在Java开发中,对象间的属性拷贝是一个常见的需求,特别是在数据转换、模型绑定或服务调用等场景。本文将深入探讨如何利用注解(Annotation)来实现这一功能,以提高代码的可读性和可维护性。我们将从标题“利用...
内容概要:本资源提供了一个Java Bean转换工具类示例,展示了如何使用反射和JSON序列化实现对象之间的属性拷贝。该工具类包含两个主要方法:convertTo和convertByJackson,前者基于反射用于结构相同的对象间的属性...
标题中的"common(bean_之音属性复制).zip"提到了一个关于Java Bean属性复制的主题,这通常指的是对象间的属性拷贝或者映射过程。在Java开发中,特别是Spring框架中,Bean的属性复制是一个常见操作,它有助于减少...
首先,Apache BeanUtils是Apache Commons项目的一部分,提供了一系列便捷的工具方法用于Bean的操作,包括属性的复制。它使用反射机制实现,通过getter和setter方法进行属性的读写。其优点在于简单易用,但缺点是在...
这段代码利用了反射机制,找到Java Bean类中的setter方法,根据JSON中的键值对调用setter方法设置属性值。 另一种常见的方式是使用Gson库,它的使用更加简洁。首先,引入Gson库,然后使用`Gson.fromJson()`方法进行...
假设我们有两个 `Person` 类的实例 `person1` 和 `person2`,我们想要将 `person1` 的属性值复制到 `person2`: ```java public static void copyBeanProperties(Object source, Object target) throws ...
Jodd Bean提供了丰富的API,使得我们可以方便地操作Bean的属性,如设置和获取值,以及进行深度的拷贝、映射和验证等操作。例如,你可以使用Jodd Bean来实现对象之间的映射,这在数据转换和JSON序列化/反序列化时非常...
例如,`BeanUtils.copyProperties(sourceBean, targetBean)`可以完成源Bean与目标Bean之间的属性拷贝。 2. **集合转换**:如果需要将一个Bean对象列表转换为另一种类型的Bean对象列表,Bean Util工具类提供了便利的...
4. **数据拷贝**:这个工具类可能包含了复制Bean对象到另一个相同类型Bean的功能,这通常用于创建Bean对象的副本,避免对原对象的修改影响到其他地方。可以使用如Apache Commons BeanUtils的`copyProperties(Object ...
bingo-bean对象拷贝,目标是比dozer更快,功能更强大,更完整的支持泛型1、该项目是复制对象的工具,创建目的是:a)、比Dozer、FastJson更快,占用内存更小b)、不同类型间的复制,包括对自定义泛型的深层识别,参见...
`BeanUtilsBean.copyProperties()`方法是实现此功能的关键,它允许我们将一个JavaBean的所有属性值复制到另一个具有相同属性的JavaBean中。 `BeanUtilsBean`的`copyProperties()`方法的工作原理如下: 1. **目标与...
##### 显示Bean属性 - **<bean:write>标记**:此标记用于将Bean的属性输出到JSP页面。与相似,但提供了更多的灵活性和功能。 - **示例代码**: ```jsp (); request.setAttribute("student", student); %> <bean:...
1. **属性访问和设置**:提供PropertyUtils类,能够方便地对Bean的属性进行读写操作,无需关心属性的getter和setter方法。 2. **事件处理**:包含EventSetDescriptor类,用于描述Bean的事件集,简化事件发布和监听...
1. **属性拷贝**:BeanUtils.copyProperties()方法可以实现两个JavaBean对象之间的属性值拷贝,极大地减少了代码量。 2. **动态属性访问**:通过BeanUtils.getProperty()和BeanUtils.setProperty(),我们可以动态地...
在Java开发中,尤其是MVC框架如Struts中,`BeanUtils`经常用于对象之间的属性拷贝、类型转换以及方法调用等操作。让我们详细探讨一下`BeanUtils`的主要功能和方法。 ### BeanUtils核心功能 1. **对象克隆与属性...
- **属性拷贝**:`copyProperties()`方法使得能够将一个Bean的所有属性值复制到另一个Bean,大大简化了对象之间的数据迁移。 - **类型转换**:库内置了自动类型转换机制,当尝试将一个对象赋值给不匹配类型的Bean...
Simple-Bean-Utility提供了copy方法,可以实现深度拷贝,即创建一个新的Bean实例,并将源Bean的所有属性值复制过去,这样可以确保源对象的状态不受影响。 4. **Reset方法**:有时我们需要清空Bean的所有属性,使其...
在Android开发中,数据对象的复制是一个常见的需求,特别是在处理数据持久化、界面状态恢复或者组件间通信时。本文将深入探讨Java中的浅复制和深复制,并以Android为背景,结合具体的实例讲解如何实现Java泛型深拷贝...
Apache BeanUtils是一个强大的Java Bean操作工具包,它简化了对Java对象属性的访问,使得开发者无需直接使用Java反射API即可方便地操作对象属性。在Java开发中,BeanUtils组件是Apache Commons项目的一部分,旨在...