6
的對象比方說,我有一個接口在Java中:類實現接口應該能夠只添加同一類
interface I {
void add(I foo);
}
,以及兩個類C和d實現此接口。
有沒有什麼辦法可以修改接口這樣,我只能這樣做:
C c = new C();
c.add(new C());
,但不
c.add(new D());
?
我對考試這個問題,但我唯一的想法就是使用的instanceof運營商在方法的定義:
class C implements I {
public void add(I foo) {
if (foo instanceof C) {
System.out.println("instance of C");
} else {
System.out.println("another instance");
}
}
}
不過,我不知道如何修改界面這樣我產生相同的效果。
感謝
這種方法不是簡單的。例如,你仍然可以做一些事情,比如'D類實現I'。然而,這是一個非常強烈的意圖指標,違反上述規定的開發者應該得到他們所得到的任何結果。 –
Dunes
爲了避免關於非參數化類型的警告,聲明應該是'interface I>'。 –
@波希米亞感謝! – Claudiu