gpt4 book ai didi

java - 如何在 Java 中将父对象转换为子对象

转载 作者:塔克拉玛干 更新时间:2023-11-01 23:02:03 26 4
gpt4 key购买 nike

我这样做:

Child child = (Child)parent;

这给了我一个错误,我发现不可能这样做。我不知道确切的原因,但我认为这应该是可能的,如果 Child 类继承自 Parent 类,它包含 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;
}
}

最佳答案

好吧,你可以这样做:

Parent p = new Child();
// do whatever
Child c = (Child)p;

或者如果你必须从一个纯父对象开始,你可以考虑在你的父类中有一个构造函数并调用:

class Child{
public Child(Parent p){
super(p);
}
}
class Parent{
public Parent(Args...){
//set params
}
}

或者组合模型:

class Child {
Parent p;
int param1;
int param2;
}

在这种情况下,您可以直接设置父对象。

您还可以使用 Apache Commons BeanUtils 来执行此操作。使用它的 BeanUtils 类,您可以访问许多实用方法以通过反射填充 JavaBeans 属性。

要将所有公共(public)/继承的属性从父对象复制到子类对象,您可以使用其静态 copyProperties() 方法:

BeanUtils.copyProperties(parentObj,childObject);

但请注意,这是一项繁重的操作。

关于java - 如何在 Java 中将父对象转换为子对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47611401/

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