我正在尝试在GWT应用程序中创建以下结构,尽管这确实是一个Java问题:
ChatComponent
是一个标记界面,其中没有方法;它旨在标记可以包含ChatMessage
。基本上我想要的是能够说
List<Widget> list = new ArrayList<>();
list.add(new ChatComponent());
现在问题很明显,接口不能扩展类,我不能使用抽象类,因为我希望组件类能够扩展他们想要的任何东西;所以我不能只在摘要中继承Widget
,然后扩展它。
有一种巧妙的方法吗?如果它不能在类层次结构中完成,但只能在带有泛型和通配符的方法中完成,那对我也有用,但我无法找到一个好的方法来做到这一点。
答案 0 :(得分:0)
使用通用通配符可能会有效。创建一个ChatComponent接口。
List<? extends ChatComponent> list = new ArrayList<>();
list.add(new MyChatComponent());
MyChatComponent.class应该是一个Widget并实现ChatComponent接口。