gpt4 book ai didi

java - 检查类是否实现接口(interface)

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

这是一个例子:

有一个基本类(A),它处理许多不同的类(假设B、C、D都扩展了P)。在 A 类中,我需要调用如下函数:

 public void doSmth(P variable) {
B b = (B)variable;
b.getSomeImportantInfo();
}

为此,我尝试添加一个接口(interface) (I) 并定义 B、C、D 来实现它。

问题是, doSmth 可以与所有这些类(B、C、D)一起使用,但我不希望它们全部实现这个接口(interface)。所以我正在尝试做这样的事情:

 public void doSmth(P variable) {
if(variable instanceof I) {
((I)variable).getSomeImportantInfo();
}
}

但这不起作用,因为它说它不能将变量转换为 I。

我怎样才能实现所需的行为?另外,我无法修改 P 并使其实现 I。

最佳答案

我想得太晚了,但是:

public static boolean isImplementsInterface(Class interfaze, Class clazz) {
for (Class c : clazz.getInterfaces()) {
if (c.equals(interfaze)) {
return true;
}
}
return false;
}

public static void main(String[] args) {
System.out.println(isImplementsInterface(CharSequence.class, String.class));
}

关于java - 检查类是否实现接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12293924/

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