gpt4 book ai didi

java - 如何将父bean的所有属性复制到子bean?

转载 作者:行者123 更新时间:2023-12-02 11:41:18 25 4
gpt4 key购买 nike

我有一个父子层次结构 bean,并且想要将所有属性从父对象复制到子对象。

我以为我可以使用 apache commons 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 需要公共(public) getter 和 setter,它不会对私有(private)字段执行任何操作。

但是您可以使用反射,例如 Springs ReflectionUtils。

该库允许您读取和写入私有(private)字段。一个例子 : https://www.intertech.com/Blog/using-springs-reflectionutils-to-access-private-fields/

关于java - 如何将父bean的所有属性复制到子bean?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48521804/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com