如果我有:是否有可能創建類型安全的Java集合,其成員僅僅實現多個接口?
interface A{ void a(); }
interface B{ void b(); }
我可以哈瓦這樣的通用方法:
class C {
<T extends A & B> void c(T t) {
t.a();
t.b();
}
}
但我不能哈瓦泛型集合是這樣的:
class D{
List<? extends A & B> l;
}
我知道我可以創建一個空的接口E,它擴展了A和B,並且有一個包含E的List ...但我寧願讓我的類只用A和B標記,而不必具有E.T當有更多的A和B可以以2^n種方式組合時,他的問題更加棘手。
我寧願能夠實時定義一個類型,作爲接口的聯合,並使集合能夠識別將所有接口實現爲該類型實例的對象。
有沒有辦法在Java中做到這一點?爲了避免創建新的界面,併爲我的類添加標籤,以便他們可以共同生活在一個集合中,我願意接受任何類型的工作或者入侵。或者,如果有人能夠向我澄清爲什麼這是不可能的,那將會同樣感激。
你的意思是和交叉*的接口,不是嗎? – Saintali 2012-04-03 06:43:05
我很確定我的意思是接口的聯合。您可能正在考慮如何實現每個接口的不同類(希望不是分離的)。然後,實現接口聯合的類集合就是上述集合的交集。 – 2012-04-03 21:59:07