这里是一个例子:检查类是否实现接口
有一个基本的类(A)处理很多不同的类(可以说B,C,D都是扩展P)。在A类,我需要调用一个函数,如:
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和使其实现一
这应该没问题(假设'P'是一些合理的类型) - 请发布简短但完整的*程序来证明问题。 –
我不确定我是否可以发布简短的程序...我正在使用android,并且我有一个处理多个自定义片段的活动来扩展片段类。在活动中,我得到了私有变量Class <?扩展Fragment> currentFragment。我试图检查它是否实现了指定的接口。示例:public class ContentFragment extends Fragments implements Stackable。我只是不想让所有的片段都实现它,我也不能让Fragment类实现它。 – Graykos