我这样做:
Child child = (Child)parent;
这给了我一个错误,我发现不可能这样做。我不知道为什么,但我认为这应该是可能的,如果 Child
类继承自 Parent
类,它包含 Parent
我的问题是:
为什么它不起作用?
我怎样才能完成这项工作,而不像这样设置每个父母的属性
:
class Parent{
public int parameter1;//...
public int parameter1000;
}
class Child extends Parent
{
public Child(Parent parent)
{
this.parameter1 = parent.parameter1;//...
this.parameter1000 = parent.parameter1000;
}
}
原文由 likaa 发布,翻译遵循 CC BY-SA 4.0 许可协议
那么你可以这样做:
或者,如果您必须从一个纯 Parent 对象开始,您可以考虑在您的父类中有一个构造函数并调用:
或组成模型:
在这种情况下,您可以直接设置父级。
您还可以使用 Apache Commons BeanUtils 来执行此操作。使用它的 BeanUtils 类,您可以访问许多用于通过反射填充 JavaBeans 属性的实用方法。
要将所有公共/继承的属性从父对象复制到子类对象,您可以使用其静态 copyProperties() 方法,如下所示:
但是请注意,这是一项繁重的操作。