[英]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.