私は、オブジェクトのProcessor
を格納できるprocessors
マップを格納しようとしているJava Genericsの例を以下に示します。私はProcessor
クラスのジェネリック型を追加しました。私は地図processors
をそのキークラス 'Processor
オブジェクトのみを値として保存するように制限します。 Javaワイルドカードを使用する方法、またはprocessors
コレクションにバインドする方法はありますか?マップ自体には、異なるクラスの複数のオブジェクトをキーに格納できることに注意してください。javaジェネリックスインスタンス変数の限定コレクション
public class GenericsExample {
private Map<?, Processor<?>> processors = new HashMap<>();
public <O> void parameterisedMethod(O o) {
processors.put(o, new Processor<O>());
}
static class Processor<T> {
void process(T t) {
System.out.println(t + " processed.");
}
}
public static void main(String[] args) {
}
}
Javaタイプシステムでは、対応を強制する方法はありません。あなたはキャストを強制することができますが、それはあなたが得ることができるほど良いです。 –
ありがとうございます。 –