![](/img/trans.png)
[英]Is it possible to simultaneously and generically subclass both a bounded generic class and a generic interface?
[英]generic interface with bounded generic interface
說我有泛型接口:
public interface MyContainer<E>{
E someMethod();
}
現在,我有另一個接口,希望它像這樣:
public interface MyService<T extends MyContainer<E>>{
// someMethod goes here
}
它當然不會編譯,只會這樣編譯:
public interface MyService<E,T extends MyContainer<E>>{
// someMethod goes here
}
但我不喜歡它,因為MyService接口並不關心E,它只關心其類型參數擴展了MyContainer。 有什么想法如何解決嗎?
但我不喜歡
開始喜歡它。
必須在引用它們之前聲明類型參數,就像在使用它們之前聲明變量一樣。
如果您關心E
的類型,則必須聲明它。 如果用T extends MyContainer<E>
引用MyService
T extends MyContainer<E>
則MyService
接口確實關心E
如果您的界面根本不關心E
是什么,那么您可以使用無界通配符。
public interface MyService<T extends MyContainer<?>>
但是,此接口的每個實現都需要完全像這樣重新聲明T
或提供完全滿足此約束的類型參數。 您將無法擺脫?
。
我可以看到,聲明E
並按原樣使用它是最好的解決方案。 不必鍵入額外的E,
沒什么大問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.