これは実際にはJavaの問題ですが、GWTアプリケーションで次の構造を作成しようとしています:
ChatComponent
マーカー インターフェイスであり、メソッドはありません。を構成できるコンポーネントをマークするためのものChatMessage
です。- すべてのチャット コンポーネントはウィジェットですが、正確にどのようなものかは不明です。チャット コンポーネントが必要に応じて拡張できるようにしたいと考えています。
- ただし、すべてのチャット コンポーネントを Widget の拡張として、コードに反映させたいと考えています。
基本的に言いたいことは
List<Widget> list = new ArrayList<>();
list.add(new ChatComponent());
ここでの問題は明らかです。インターフェイスはクラスを拡張できず、抽象クラスも使用できません。なぜなら、コンポーネント クラスが必要なものを何でも拡張できるようにしたいからです。Widget
したがって、抽象でサブクラス化してから拡張することはできません。
これを行うためのきちんとした方法はありますか?クラス階層では実行できず、ジェネリックとワイルドカードを使用したメソッドでのみ実行できる場合、それは私にとってもうまくいきますが、それを行う良い方法も本当にわかりませんでした。