ジェネリックについて質問があります。
Map<? super String, ? super String> mappa1 = new HashMap<Object,Object>();
super を使用すると、 aHashMap<Object,Object>
に対して aをインスタンス化できます<? super String>
。ただし、String を拡張するオブジェクトのみを追加できます (この場合は String 自体のみ)。extends
ワイルドカードで発生するのと同様に、コンパイルエラーで禁止しないのはなぜですか。つまり、一度 a を作成するMap <Object, Object>
と、文字列を追加することしかできないということです..Map<String, String>
そもそも a を強制的に作成しないのはなぜですか? extends
(ワイルドカードで起こるように)
繰り返しますが、ジェネリックに関するsuper
との違いを知っています。extends
上記の詳細を知りたいだけです。
前もって感謝します。