我正在尝试在 GWT 应用程序中创建以下结构,尽管这确实是一个 Java 问题:
ChatComponent
是一个标记接口,里面没有方法;它旨在标记可以包含ChatMessage
.- 所有聊天组件都是小部件,但具体是什么不知道;我想允许聊天组件扩展他们想要的任何东西。
- 但是,我还希望所有聊天组件都是 Widget 的扩展,并在代码中反映出来。
基本上我想要的是能够说
List<Widget> list = new ArrayList<>();
list.add(new ChatComponent());
现在这里的问题很明显,接口不能扩展类,我不能使用抽象类,因为我希望组件类能够扩展它们想要的任何东西;所以我不能只是Widget
在抽象中子类化然后扩展它。
有没有一种巧妙的方法来做到这一点?如果它不能在类层次结构中完成,但只能在具有泛型和通配符的方法中完成,那也适用于我,但我也想不出一个好方法来做到这一点。