Java 如何将所有属性从父bean复制到子bean?
我有一个父子层次结构bean,希望将所有属性从父对象复制到子对象 我想我可以使用ApacheCommonsJava 如何将所有属性从父bean复制到子bean?,java,apache-commons,apache-commons-beanutils,Java,Apache Commons,Apache Commons Beanutils,我有一个父子层次结构bean,希望将所有属性从父对象复制到子对象 我想我可以使用ApacheCommonsBeanUtils,但失败了。但是为什么呢 public class ParentChildCopyTest { class Person { String name; } class Child extends Person { private String birthday; } @Test public
BeanUtils
,但失败了。但是为什么呢
public class ParentChildCopyTest {
class Person {
String name;
}
class Child extends Person {
private String birthday;
}
@Test
public void test() throws Exception {
Person p = new Person();
p.name = "Dummy";
Child c = new Child();
org.apache.commons.beanutils.BeanUtils.copyProperties(c, p);
assertEquals(p.name, c.name); //this FAILS
}
}
旁注:当然,我的现实世界对象要复杂得多。我正在寻找一种不必手动将所有属性复制为getter/setter的方法(特别是在这种特定情况下,我不想添加getter/setter)。BeanUtils需要公共getter和setter,它不会对私有字段做任何事情 但是,您可以使用反射,例如,使用弹簧ReflectionUtils 此库允许您读取和写入私有字段。 例如:
是的,添加getter/setter确实有效。所以也许没有他们我就无法让我们生活下去。。。