这是一个例子:
有一个基本类(A)可以处理许多不同的类(比如说 B、C、D 都扩展了 P)。在 AI 类中需要调用如下函数:
public void doSmth(P variable) {
B b = (B)variable;
b.getSomeImportantInfo();
}
为此,我尝试添加一个接口 (I) 并定义 B、C、D 实现它。
问题是,doSmth 将适用于所有这些类(B、C、D),我不希望它们都实现这个接口。所以我正在尝试做这样的事情:
public void doSmth(P variable) {
if(variable instanceof I) {
((I)variable).getSomeImportantInfo();
}
}
但这不起作用,因为它说它不能将变量转换为 I。
我怎样才能实现所需的行为?另外,我不能修改 P 并使其实现 I。