gpt4 book ai didi

java - 使用父类(super class)表中类的方法 (Java)

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

我正在开发一个java项目,我有两个类(对于这个主题,不在项目中):类“Objet”和类“Cle extends Objet”,其方法“getNumero()”仅在克莱。在我的主要部分,我写了这段代码:

Objet[] objets = Scenario.objets;
for (int i=0;i<objets.length;i++)
{
if(objets[i].getClass() == modele.Cle.class
&& objets[i].getNumero() == salle.getPorte(direction).getNumero()){}
}

问题出在“if”的第二部分,类 Objet 没有方法“getNumero()”,所以我检查 Objet 是否是 Cle,但 java 不明白如果我的第一个“如果”的一部分为真,则第二部分是可能的。有人可以说是否可以从对象中提取 Cle,以及如何提取?

谢谢。

最佳答案

使用显式强制转换,常见的习惯用法是:

if (objets[i] instanceof Cle) {
Cle aCle = (Cle) objets[i];
aCle.getNumero(); // works
} else {
... // fail?
}

进一步考虑,根据具体情况,您可以将 getNumero() 添加为 Objet 的抽象方法,而不是强制转换。如果您做不到这一点,也许您可​​以研究泛型,使您的 Objet 实例供应商能够提供 Cle 实例。这又取决于具体场景。

关于java - 使用父类(super class)表中类的方法 (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13772850/

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