gpt4 book ai didi

java - 如何实现父类(super class)对象转换为子类对象的效果?

转载 作者:行者123 更新时间:2023-12-01 04:36:21 26 4
gpt4 key购买 nike

我有一个库,它使用数据类型 X 作为输入来构建 HashMap。它是 JGraphT 库。现在,我有 X、Y 和 Z 两种类型。所以 X 是一个父类(super class)。 Y 和 Z 是 X 的子类。现在 X 是一个顶点。 Y和Z是特定类型的顶点。

现在,当我在 JGraphT 中构建图形并获取图形中任何边的源顶点时,我将其获取为数据类型 X。我想将其转换为数据类型 Y 和 Z,但简单的括号类型转换不会不工作。我知道您不能以这种方式从父类(super class)对象转换为子类对象。但有什么办法可以实现这一点吗?

最佳答案

如果调用结果实际上是 YZ 的实例,您可以使用 instanceof

X x = someCall();
if (x instanceof Y) {
Y y = (Y)x;
y.doSomething();
}
else
if (x instanceof Z) { ... }

如果返回的 x 只是 X 而不是实际上的 Y 或 Z,那么您需要根据 X 中的数据创建自己的 Y 或 Z(可能通过将 X 实例作为参数的构造函数) .

关于java - 如何实现父类(super class)对象转换为子类对象的效果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17287566/

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