`

java 对象之间属性值复制

阅读更多
1, BeanUtils.copyProperties(dest, orig);
这种copy是浅拷贝,复制后的2个Bean的同一个属性可能拥有同一个对象的ref,这个在使用时要小心,特别是对于属性为自定义类的情况.还要属性为集合类的情况。小心hibernate的Set
2,BeanUtils.copyProperties与PropertyUtils.copyProperties的区别
这两个类几乎有一摸一样的功能,唯一的区别是:BeanUtils在对Bean赋值是会进行类型转化。举例来说也就是在copyProperty时只要属性名相同,就算类型不同,BeanUtils也可以进行copy;而PropertyBean则可能会报错。当然2个Bean之间的同名属性的类型必须是可以转化的,否则用BeanUtils一样会报错。         
总结:
若目标对象或源对象有一方为null,则会抛出异常
如:java.lang.IllegalArgumentException: No destination bean specified
若在复制含有日期属性的对象时,使用BeanUtils.copyProperties,源日期属性值为null,则会抛出org.apache.commons.beanutils.ConversionException: No value specified for 'Date',此时可以用PropertyUtils.copyProperties
分享到:
评论

相关推荐

    java不同对象之间及集合的复制

    2. **值复制**: 值复制是指复制一个对象时,创建一个新的对象并复制原对象的所有属性值。在Java中,如果类的属性都是基本类型,可以通过构造函数或克隆方法实现浅复制。但如果属性包含引用类型,就需要深复制以确保...

    两个对象属性值的拷贝和文件的拷贝

    实现了两个对象之间属性值的拷贝,只要具有相同的属性名就可以拷贝,还有两个file对象的拷贝,实现文件的复制功能

    java不同对象及集合的多次复制

    值复制,即对象属性值的复制,是保持数据一致性和简化代码的重要手段。本主题将深入探讨如何使用注解实现不同对象、相同对象以及集合与集合之间的多次复制,以避免繁琐的手动复制过程。 1. **对象复制的基本概念** ...

    对象属性值的复制工具类

    对象属性值的复制工具类 1.全复制 2.部分复制 3.部分不复制

    java对象复制克隆

    3. **使用`copy-constructor`或`copy-method`**:创建一个构造函数或静态工厂方法,接收一个同类型的对象作为参数,然后将源对象的每个属性值复制到新创建的对象上。这种方法允许对拷贝过程有更多的控制,可以处理更...

    Java对象的复制克隆

    浅拷贝,也称为表面拷贝,是创建一个新的对象,然后将原始对象中的基本类型字段的值复制到新对象中。对于引用类型字段,浅拷贝只会复制引用,而不是引用的对象内容。这意味着原始对象和副本对象共享同一块内存空间,...

    java 对象克隆

    总结,Java中的对象克隆是一项重要的功能,用于复制和独立化对象。通过实现`Cloneable`接口和覆盖`clone()`方法,我们可以创建浅克隆对象。对于更复杂的场景,可以自定义克隆逻辑或利用序列化来实现深克隆。理解并...

    编程语言java对象复制.pdf

    在Java中,对象复制通常指的是创建一个与已有对象具有相同属性值的新对象。复制可以分为浅复制(shallow copy)和深复制(deep copy)。浅复制仅仅复制对象中的基本类型数据和引用其他对象的引用,而不会复制引用的...

    java值拷贝

    在Java编程中,值拷贝(Value Copy)是一种常见的数据操作,主要用于对象之间的属性值复制。这个主题涉及到Java中的浅拷贝和深拷贝概念,以及如何利用工具库如Apache Commons BeanUtils进行对象属性的便捷复制。 ...

    java对象和对象的引用之间的关系

    ### Java对象和对象的引用之间的关系 #### 一、Java对象和对象的引用的基本概念 在Java编程语言中,理解对象和对象引用之间的关系是非常重要的基础。对象是类的一个实例,而对象引用则是用于访问该对象的一种手段...

    java对象复制[参考].pdf

    对象复制是指创建一个新对象,这个新对象与原对象具有相同的属性值。在Java中,基础类型(如int、double等)是按值传递的,而对象则是按引用传递。这意味着当你将一个对象赋值给另一个变量时,实际上是复制了对象的...

    java类复制一个持久化对象

    下面是对给定代码片段的详细分析,该代码展示了如何使用反射来复制一个Java对象: ```java public static Object copy(Object object) throws Exception { Class<?> classType = object.getClass(); Object ...

    Java中对象的深复制和浅复制详解.doc

    浅复制是指创建一个新对象,该对象拥有原始对象的所有变量的相同值。但是,如果对象的变量包含对其他对象的引用,那么这些引用在复制后仍然指向原来的对象,而不是新创建的对象。这意味着修改复制对象的这些引用...

    java List 深度复制方法

    但对于可变对象(如自定义类实例),我们需要通过序列化和反序列化,或者手动创建新对象并设置属性值来实现深复制。 以下是一个简单的深复制示例,使用了Java的序列化机制: ```java import java.io.*; public ...

    Java反射动态修改注解的某个属性值.Java

    1. **创建代理注解**:使用`java.lang.annotation.Annotation`接口的子接口(如`java.lang.annotation.Retention`、`java.lang.annotation.Target`等)创建一个新的代理注解,这个代理注解的属性值将是我们想要修改...

    BeanUtilsBean对象复制使用(类型可以自动转化)

    对象复制是指将一个对象的属性值复制到另一个对象的过程,通常用于创建新对象或者初始化对象。`BeanUtilsBean.copyProperties()`方法是实现此功能的关键,它允许我们将一个JavaBean的所有属性值复制到另一个具有相同...

    利用Java反射机制实现对象相同字段的复制操作

    这个方法可以将一个对象的属性值复制到另一个对象中,实现对象相同字段的复制操作。该方法的参数包括源对象、目标对象、Editable对象和忽略的属性名数组。 四、自己动手丰衣足食 除了使用别人的工具,我们也可以...

    java对象复制

    Java对象的复制主要有两种方式:浅复制(Shallow Copy)和深复制(Deep Copy)。标题中的"java对象复制"主要涉及到Java中对象复制的基本概念、实现方法以及相关的注意事项。 首先,Java中的对象复制问题源于其默认...

    java中对象和对象引用的区别!

    这一点在Java中非常重要,因为它影响到了如何处理对象的复制以及对象的生命周期等问题。 - **空引用** 如果我们声明了一个引用变量但并未给它分配任何对象,那么这个引用变量就称为“空引用”或“未初始化的引用...

    java深度复制源代码

    浅复制是指创建一个新的对象,并将原对象的非引用类型的字段值复制到新对象中;对于引用类型的字段,只是复制了引用地址,即新旧对象共享同一份数据。而深度复制则是指不仅复制了对象本身,还复制了对象所引用的对象...

Global site tag (gtag.js) - Google Analytics