HashMap<Integer, String> hashMap = new HashMap<>();
hashMap.put(1, "aaa");
hashMap.put(2, "baa");
hashMap.put(3, "caa");
System.out.println(hashMap.get(false));
上記のコードはコンパイルされ、正常に動作...はnull
として出力を提供します。Javaのジェネリックは、HashMapのために得るにブール値を渡すことができない理由<整数、文字列>
私が理解しようとしているのは、私が見逃している間に起こっているオートバイのことです。コンパイル時にジェネリックが適用されると、getメソッドはそこでブール値を渡すことは許されません。
おかげ
'boolean'は' Boolean'に自動ボクシングされます。あなたのコードは 'System.out.println(hashMap.get(Boolean)false));' –
ありがとう@ElliottFrisch!ブール値は、それが動作するオブジェクトのサブクラスです。 –