繁体   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