コンストラクターに渡すパラメーターのネイティブ型に基づいて、オブジェクトを動的に拡張しようとしています。
私はいくつかのJavaジェネリックとワイルドカードのものを読みましたが、良いアプローチを見つけることができないようです。
説明のための擬似コード:
public class myClass extends <?> {
// Constructor
public myClass(<?> param) {
}
}
ある種のビルダークラスを使用する必要がありますか?もしそうなら、私はこれをどのようにレイアウトしますか?
編集:
私は自分のアプローチがかなり悪いと感じたので、ここで尋ねました。さらに説明するには:
私は多くのサブインターフェースを備えたインターフェースを持っており、そのうちのいくつかはサブインターフェースも持っています。私の目的では、スーパーインターフェイスはAPIであるため、メソッドを追加するために編集することはできません。サブインターフェイスの1つを渡すイベントがあります。これは、より多くのメソッドとプロパティを持つ自分のオブジェクトにキャストできるようにしたいのですが、それでもサブインターフェイスのメソッドにアクセスしたいのです。
たとえば、サブインターフェイスはエンティティと呼ばれます。私ができることはmyClass extendedEntity = new myClass(entity)
、私が公開したい新しいメソッドを持っています。渡されたサブインターフェイスをオブジェクトのプロパティにするとextendedEntity.entity.originalMethod()
、サブインターフェイスに含まれているメソッドにアクセスできます。extendedEntity.originalMethod()
しかし、私はそれと同様にそれを持ちたいですextendedEntity.addedMethod()
。
これは誰にとっても意味がありますか、そして私が行方不明になっていることを私ができることは明らかですか?(機械エンジニアとして教育を受けたJavaは趣味なので、許してください!)