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
这种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
发表评论
-
No result defined for action and result input
2014-11-04 00:00 721No result defined for action an ... -
oracle常用函数
2014-09-25 13:52 625oracle常用函数 1.decode(value,if 1 ... -
XStream解析下划线出现重复问题
2014-07-17 17:15 1577直接看代码 XStream xs = new XStrea ... -
在eclipse中svn账户或密码错误或想更改用户
2014-04-21 16:26 859删除c:\User\当前登录名\AppData\Roaming ... -
spring3集成quartz2
2014-04-19 14:34 984最近项目中要用到quartz 做job,在网上看了些资料,自己 ... -
oracle与mysql多行合并
2014-04-14 14:59 8261.oracle多行合并一行 效果: SELECT a, ... -
jasperreport报表问题
2014-04-04 17:14 1272今天改报表遇到个问题,从svn拉了个报表下来直接改,改后编译放 ... -
如何防止用户重复提交
2013-08-26 18:43 1198防止重复提交java解决 ... -
java.lang.IllegalStateException: getOutputStream() has already been called for t
2013-06-04 21:42 1103最近查看apache tomcat日志,发现经常出现一个错误如 ... -
简单的Excel导出
2013-05-28 23:02 1015项目报表要做导出Excel的功能,用了POI,首先要加载POI ... -
sql
2013-04-01 17:20 676sql从一张表的数据更新到另一张表 UPDATE 表B S ... -
javascript获取当前行
2013-01-10 14:53 1391这些天用到了,记下来,说不定将来有用 var td=even ... -
严格的身份证号码验证
2012-12-27 15:26 981<script> function chec ... -
游标的使用
2012-12-06 21:00 913create or replace procedure ... -
存储过程
2012-12-06 19:41 879存储过程 1 CREATE OR REPLACE PRO ... -
oracle创建存储过程和函数
2012-12-06 19:07 1012Oracle创建存储过程、创建函数、创建包 一、Oracle ... -
关于oracle 中的jobs
2012-12-06 15:18 1180先给个小例子吧 create ... -
javascript操作时间总结
2012-11-22 19:57 868时间对象是一个我们经常要用到的对象,无论是做时间输出、时间判断 ... -
tomcat启动时报异常java.lang.Exception: Socket bind failed
2012-11-07 10:57 1581异常如下: 严重: Error starting endpoi ... -
浅谈网页乱码问题分析
2012-10-28 21:33 13431.首先,我要讲一下乱 ...
相关推荐
2. **值复制**: 值复制是指复制一个对象时,创建一个新的对象并复制原对象的所有属性值。在Java中,如果类的属性都是基本类型,可以通过构造函数或克隆方法实现浅复制。但如果属性包含引用类型,就需要深复制以确保...
实现了两个对象之间属性值的拷贝,只要具有相同的属性名就可以拷贝,还有两个file对象的拷贝,实现文件的复制功能
值复制,即对象属性值的复制,是保持数据一致性和简化代码的重要手段。本主题将深入探讨如何使用注解实现不同对象、相同对象以及集合与集合之间的多次复制,以避免繁琐的手动复制过程。 1. **对象复制的基本概念** ...
对象属性值的复制工具类 1.全复制 2.部分复制 3.部分不复制
3. **使用`copy-constructor`或`copy-method`**:创建一个构造函数或静态工厂方法,接收一个同类型的对象作为参数,然后将源对象的每个属性值复制到新创建的对象上。这种方法允许对拷贝过程有更多的控制,可以处理更...
浅拷贝,也称为表面拷贝,是创建一个新的对象,然后将原始对象中的基本类型字段的值复制到新对象中。对于引用类型字段,浅拷贝只会复制引用,而不是引用的对象内容。这意味着原始对象和副本对象共享同一块内存空间,...
总结,Java中的对象克隆是一项重要的功能,用于复制和独立化对象。通过实现`Cloneable`接口和覆盖`clone()`方法,我们可以创建浅克隆对象。对于更复杂的场景,可以自定义克隆逻辑或利用序列化来实现深克隆。理解并...
在Java中,对象复制通常指的是创建一个与已有对象具有相同属性值的新对象。复制可以分为浅复制(shallow copy)和深复制(deep copy)。浅复制仅仅复制对象中的基本类型数据和引用其他对象的引用,而不会复制引用的...
在Java编程中,值拷贝(Value Copy)是一种常见的数据操作,主要用于对象之间的属性值复制。这个主题涉及到Java中的浅拷贝和深拷贝概念,以及如何利用工具库如Apache Commons BeanUtils进行对象属性的便捷复制。 ...
### Java对象和对象的引用之间的关系 #### 一、Java对象和对象的引用的基本概念 在Java编程语言中,理解对象和对象引用之间的关系是非常重要的基础。对象是类的一个实例,而对象引用则是用于访问该对象的一种手段...
对象复制是指创建一个新对象,这个新对象与原对象具有相同的属性值。在Java中,基础类型(如int、double等)是按值传递的,而对象则是按引用传递。这意味着当你将一个对象赋值给另一个变量时,实际上是复制了对象的...
下面是对给定代码片段的详细分析,该代码展示了如何使用反射来复制一个Java对象: ```java public static Object copy(Object object) throws Exception { Class<?> classType = object.getClass(); Object ...
浅复制是指创建一个新对象,该对象拥有原始对象的所有变量的相同值。但是,如果对象的变量包含对其他对象的引用,那么这些引用在复制后仍然指向原来的对象,而不是新创建的对象。这意味着修改复制对象的这些引用...
但对于可变对象(如自定义类实例),我们需要通过序列化和反序列化,或者手动创建新对象并设置属性值来实现深复制。 以下是一个简单的深复制示例,使用了Java的序列化机制: ```java import java.io.*; public ...
1. **创建代理注解**:使用`java.lang.annotation.Annotation`接口的子接口(如`java.lang.annotation.Retention`、`java.lang.annotation.Target`等)创建一个新的代理注解,这个代理注解的属性值将是我们想要修改...
对象复制是指将一个对象的属性值复制到另一个对象的过程,通常用于创建新对象或者初始化对象。`BeanUtilsBean.copyProperties()`方法是实现此功能的关键,它允许我们将一个JavaBean的所有属性值复制到另一个具有相同...
这个方法可以将一个对象的属性值复制到另一个对象中,实现对象相同字段的复制操作。该方法的参数包括源对象、目标对象、Editable对象和忽略的属性名数组。 四、自己动手丰衣足食 除了使用别人的工具,我们也可以...
Java对象的复制主要有两种方式:浅复制(Shallow Copy)和深复制(Deep Copy)。标题中的"java对象复制"主要涉及到Java中对象复制的基本概念、实现方法以及相关的注意事项。 首先,Java中的对象复制问题源于其默认...
这一点在Java中非常重要,因为它影响到了如何处理对象的复制以及对象的生命周期等问题。 - **空引用** 如果我们声明了一个引用变量但并未给它分配任何对象,那么这个引用变量就称为“空引用”或“未初始化的引用...
浅复制是指创建一个新的对象,并将原对象的非引用类型的字段值复制到新对象中;对于引用类型的字段,只是复制了引用地址,即新旧对象共享同一份数据。而深度复制则是指不仅复制了对象本身,还复制了对象所引用的对象...