`
guozhgang
  • 浏览: 5391 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

java两个对象中相同的属性值复制

阅读更多
/**
* 两个对象中相同的属性值复制
* @param source
* @param dest
* @throws Exception
*/
public static void Copy(Object source, Object dest)throws Exception { 
        //获取属性 
        BeanInfo sourceBean = Introspector.getBeanInfo(source.getClass(), java.lang.Object.class); 
        PropertyDescriptor[] sourceProperty = sourceBean.getPropertyDescriptors(); 
         
        BeanInfo destBean = Introspector.getBeanInfo(dest.getClass(), java.lang.Object.class); 
        PropertyDescriptor[] destProperty = destBean.getPropertyDescriptors(); 
         
        try{ 
            for(int i=0;i<sourceProperty.length;i++){ 
                 
                for(int j=0;j<destProperty.length;j++){ 
                     
                    if(sourceProperty[i].getName().equals(destProperty[j].getName())){ 
                        //调用source的getter方法和dest的setter方法 
                        destProperty[j].getWriteMethod().invoke(dest, sourceProperty[i].getReadMethod().invoke(source)); 
                        break;                   
                    } 
                } 
            } 
        }catch(Exception e){ 
            throw new Exception("属性复制失败:"+e.getMessage()); 
        } 
    } 
分享到:
评论

相关推荐

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

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

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

    - 在某些场景下,我们可能需要将源对象的属性值复制到具有不同类型的对象中,这时可以使用ModelMapper的`configure()`方法设置映射规则。 总的来说,Java中的对象复制可以通过多种方式实现,包括基本的复制方法和...

    java 对象克隆

    因此,对这些引用的修改会影响到两个对象。相反,深克隆不仅复制了对象本身,还递归地复制了所有引用的对象,确保新对象与原对象完全独立。 二、实现克隆的方式 1. 实现Cloneable接口 Java中的Object类提供了一个`...

    java对象复制克隆

    在Java编程中,对象复制和克隆是两个重要的概念,特别是在处理复杂数据结构时。对象复制通常分为浅拷贝和深拷贝。标题中的“java对象复制克隆”主要涉及的是深拷贝,这是一种创建一个新对象的方式,新对象不仅复制...

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

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

    Java对象的复制克隆

    Java中的对象复制与克隆是程序开发中常见的需求,主要用于创建一个对象的副本,而不会影响原始对象的状态。这里主要讨论两种类型的对象拷贝:浅拷贝和深拷贝。 浅拷贝,也称为表面拷贝,是创建一个新的对象,然后将...

    java List 深度复制方法

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

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

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

    java值拷贝

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

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

    在Java中,“=”符号并不意味着两个对象之间的赋值,而是一个指向对象地址的传递。例如: ```java A a3 = new A(); A a4 = new A(); a3 = a4; // 此时a3和a4都指向同一个由new A()创建的对象 ``` 这里需要...

    reflection给相同对象赋值

    当需要为相同类的两个对象赋值时,通常我们会直接调用拷贝构造函数或实现`clone()`方法。然而,如果类没有提供这些功能,或者我们希望动态地处理多个类的赋值操作,反射就派上用场了。 以下是使用反射进行对象赋值...

    think in java 第11章 持有对象

    8. **对象的比较**:Java中的equals()方法用于比较两个对象的内容是否相等,而hashCode()方法则与对象的唯一标识有关,常用于哈希表(如HashMap)的查找。重写这两个方法是实现自定义对象比较的关键。 9. **访问...

    Java-Java面向对象中引用传递教程

    这样两个对象各自拥有独立的内存空间,互不影响。 5. **Cloneable接口与深拷贝** - Java提供了`Cloneable`接口来实现对象的深拷贝,但默认的`clone()`方法只进行浅拷贝。若需要深拷贝,需要自行实现拷贝逻辑。 6....

    基于java8新特性+反射机制实现list不同实体类互转.zip

    通过反射,我们可以根据源实体类的对象,创建目标实体类的对象并复制相应的属性值。 要实现不同实体类的List之间的转换,首先我们需要知道源列表(SourceList)和目标列表(TargetList)中实体类的结构关系。通常,...

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

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

    java对象复制

    也就是说,如果`Point`类中还包含其他对象的引用,那么这两个克隆对象将共享这些引用的对象。若要实现深复制,需要手动复制所有嵌套的对象。 此外,提到的`ArrayList`和`HashMap`是非同步的,这意味着它们在多线程...

    浅谈java面向对象和引用

    - **引用变量**:在Java中声明一个对象时,实际上是声明了一个引用变量。例如,`Person person = new Person("");` 这行代码中,`person`就是一个引用变量,它指向由`new Person("");`创建的对象。 - **引用赋值**:...

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

    在Java中,当我们创建一个对象时,实际上是经历了几个步骤: 1. **创建对象**: `new`关键字用于在堆空间中创建一个对象。 ```java Vehicle veh1 = new Vehicle(); ``` 这行代码包含了以下几个动作: - 使用`...

    java的深复制与浅复制

    1. **基本数据类型**:如int、double等会被完全复制,两个对象中的这些字段互不影响。 2. **引用类型**:如Object对象等,仅复制引用地址而非实际对象。这意味着两个对象共享同一引用类型的实例。 ##### 示例代码:...

    java深度复制源代码

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

Global site tag (gtag.js) - Google Analytics