這裏是一個例子:檢查類是否實現接口
有一個基本的類(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