gpt4 book ai didi

java - 检查子类时出现 "instanceOf"错误

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

我有一个方法,它接受所有扩展 Persona.Class 的类作为参数( Uomo.ClassDonna.Class 扩展 Persona.Class )。

public PersonaDecorator(Class <? extends Persona> persona) {            
}

在这个方法里面,我需要知道发送给这个方法的类是不是Uomo.ClassDonna.Class .

我以为我可以做这样的事情:

public PersonaDecorator(Class <? extends Persona> persona) {    
if(persona instanceof Uomo){
......
}
}

但我得到这个错误:Incompatible conditional operand types Class<capture#1-of ? extends Persona> and Uomo

谢谢

最佳答案

instanceof 运算符测试一个引用(左操作数)是否指向一个对象,该对象是在右操作数上命名的类的实例。

在这里,persona 将是对 Class 实例的引用,而 Class 的实例永远不能是 的实例>角色。您正在测试一个不可能的条件,编译器会很有帮助地告诉您这个错误。

我怀疑你想要Class.isAssignableFrom:

if (Uomo.class.isAssignableFrom(persona))

这也会找到 Uomo 的子类。如果你想测试它是否是 exactly Uomo 类,你可以使用:

if (persona == Uomo.class)

关于java - 检查子类时出现 "instanceOf"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33887444/

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