型指定されたインターフェイス定義を作成しています。タイプパラメータの可能な値をクラスのセットに制限します。これらのクラスは既に存在し、私のコントロール下にありません。また、それらはクラス階層を介して相互に関連していません。特定のクラスのインターフェイスでJavaジェネリック型パラメータを制限する方法
たとえば、私は3つのクラスA、B、Cを持っています。私のインターフェイスはIMyFancyInterface<T>
です。 このインターフェイスの実装者を制限し、TがA、B、またはCのいずれかであることを確認するにはどうすればよいですか? ありがとうございました。この方法であなた
public interface IMyFancyInterface<T extends Super> { .. }
:
乾杯、
マーティン
あなたの意図は、おそらく正しいデザインではありません。 – Kelvin
OK、私は明確にしましょう:訪問者パターンに似た何かを作成しています。ここで、A、B、Cは訪問されているオブジェクトのクラスです。私はA、B、Cを変更することができないので、「類似」と言います。標準実装のようにaccept(Visitor v)メソッドを追加することはできません。代わりに、訪問者クラスがこれを実装できるように、メソッド訪問(A o)で型付きのVistorインターフェイスを作成したかったのです。 AVisitorはIMyVisitorInterface を実装しています。 –
また、訪問者の実装を保持するトラバーサルクラスがあり、タイプA、B、Cのオブジェクトを保持する構造体をトラバースしてvisit()メソッドを呼び出す必要があります。 –