[英]Java - force implemented interface to extend a class
我正在嘗試在GWT應用程序中創建以下結構,盡管這實際上是Java問題:
ChatComponent
是標記接口,其中沒有方法。 它旨在標記可以包含ChatMessage
組件。 基本上我要說的是
List<Widget> list = new ArrayList<>();
list.add(new ChatComponent());
現在問題很明顯了,接口不能擴展類,我也不能使用抽象類,因為我希望組件類能夠擴展他們想要的任何東西。 所以我不能只將Widget
子類Widget
一個抽象然后再進行擴展。
有沒有一種整潔的方式做到這一點? 如果它不能在類層次結構中完成,而只能在具有泛型和通配符的方法中完成,那對我也同樣適用,但是我也無法真正找到一種可行的方法。
使用通用通配符可能會起作用。 創建一個ChatComponent接口。
List<? extends ChatComponent> list = new ArrayList<>();
list.add(new MyChatComponent());
MyChatComponent.class應該是一個Widget,並實現ChatComponent接口。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.