[英]java bean copy by calling getter and setters
有沒有辦法通過調用它的getter和setter來深度復制2個java對象? 所有的setter和getter都是公共方法。
謝謝,
Commons BeanUtils中的copyProperties(...)可能通過在兩個不同的bean中匹配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
Test$Bean1@1f7d2f0e[propbean1=Foo]
Test$Bean2@539c5048[propbean2=Foo]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.