gpt4 book ai didi

java - 使用instanceof检查数组元素是否属于某个类

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

所以我做了两个类。

  1. 矩形
  2. coloredRectangle 扩展了 Rectangle

然后我制作了一个矩形数组并插入了此检查:

if(tabel[i] instanceof coloredRectangle){}

Netbeans 告诉我“不可转换的类型,需要有色矩形,找到矩形”我认为通过多态性它可以工作。我做错了什么?

代码矩形:

public class Rechthoek implements Printbaar {
protected double lengte,breedte;
private Rechthoek[] tabel;

public Rechthoek(int lengte,int breedte){
this.lengte=lengte;
this.breedte=breedte;
}

public String getInfo(){
return ("De lengte van de rechthoek is "+lengte+" en de breedte is "+breedte+" .");
}

public void schrijfTabel(Rechthoek[] tabel){
for (int i = 0; i < tabel.length; i++) {
tabel[i].getInfo();
}
}

//错误代码在以下方法中 - Rechthoek = Rectangle 和 kleurRechthoek = ColoredRectangle

public boolean bevatKleur(Rechthoek[] tabel,String kleur){
for (int i = 0; i < tabel.length; i++) {
if(tabel[i] instanceof kleurRechthoek ){
return true;
}
}
}

最佳答案

那是因为您(可能)无法从 tabel[i] 转换为 coloredRectangle

JLS 中有说明如果发生上述情况,instanceof 将导致编译问题:

If a cast of the RelationalExpression to the ReferenceType would be rejected as a compile-time error, then the instanceof relational expression likewise produces a compile-time error. In such a situation, the result of the instanceof expression could never be true.

关于java - 使用instanceof检查数组元素是否属于某个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21407463/

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