簡體   English   中英

Java-強制實現接口以擴展類

[英]Java - force implemented interface to extend a class

我正在嘗試在GWT應用程序中創建以下結構,盡管這實際上是Java問題:

  1. ChatComponent是標記接口,其中沒有方法。 它旨在標記可以包含ChatMessage組件。
  2. 所有聊天組件都是小部件,但確切的類型是未知的。 我想允許聊天組件擴展他們想要的任何內容。
  3. 但是,我還希望所有聊天組件都是Widget的某種擴展,並將其反映在代碼中。

基本上我要說的是

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM