2011-02-01 32 views

回答

1

在下议院的BeanUtils copyProperties(...)可能是你想要通过在两个不同的豆类匹配的getter/setter什么。

public class Test 
{ 

    public static void main(String[] args) throws IllegalAccessException, InvocationTargetException 
    { 
     new Test().run(); 
    } 

    private void run() throws IllegalAccessException, InvocationTargetException 
    { 
     Bean1 one = new Bean1(); 
     one.setProp1("Foo"); 

     Bean2 two = new Bean2(); 

     BeanUtils.copyProperties(two, one); 

     System.out.println(ToStringBuilder.reflectionToString(one)); 
     System.out.println(ToStringBuilder.reflectionToString(two)); 
    } 

    public class Bean1 
    { 
     private String propbean1; 

     public String getProp1() 
     { 
      System.out.println("bean1 getter"); 
      return propbean1; 
     } 

     public void setProp1(String s) 
     { 
      System.out.println("bean1 setter"); 
      propbean1 = s; 
     } 
    } 

    public class Bean2 
    { 
     private String propbean2; 

     public String getProp1() 
     { 
      System.out.println("bean2 getter"); 
      return propbean2; 
     } 

     public void setProp1(String s) 
     { 
      System.out.println("bean2 setter"); 
      propbean2 = s; 
     } 
    } 
} 

打印

bean1 setter 
bean1 getter 
bean2 setter 
[email protected][propbean1=Foo] 
[email protected][propbean2=Foo] 
1
  1. Java提供的clone()进行浅拷贝,但可以扩展到执行深层副本。 Read here了解更多详情。
  2. Object Serialization technique can be used for the same.
+0

我2个Java对象可以是不同类型的,但我感兴趣的只是复制他们的属性。 – 2011-02-01 04:12:39

+0

+1用于添加序列化作为选项。这也是一个有多方面的好处,除非你生活在真空中。 – 2011-02-01 05:17:15