gpt4 book ai didi

java - 如何查找我的对象是否扩展了给定的抽象类?

转载 作者:行者123 更新时间:2023-11-29 06:27:16 26 4
gpt4 key购买 nike

我有主课

public class Main(){
public static void main(String[] args){
ArrayList<A> as = new ArrayList<>();
C c = new C();
D d = new D();
E e = new E();

as.add(c);
as.add(d);
as.add(e);

for(A a : as){
a.print(); // want to do it conditionally when Object inside list have extended class B
}
}
}

方法 print() 是从抽象类 A 扩展而来的。C 类和 D 类扩展了 B 类,B 类扩展了 A。

    A
/ \
B E
/ \
C D

我该如何使用这种方法?

尝试过:

for(A a : as){
if(a.getClass().getSuperclass().getSimpleName().equals("B")){
a.print(); // Doesn't work a.getClass().getSuperclass().getSimpleName() prints A
}
}

有什么技巧可以实现吗?

最佳答案

你可以使用instanceof:

for(A a : as){
if(a instanceof B){
a.print();
}
}

有关详细信息,请参阅 this question .

关于java - 如何查找我的对象是否扩展了给定的抽象类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51746362/

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