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
.
我想了解的是,我似乎错过了中间发生的任何自动装箱。因为如果在编译时应用泛型,get 方法将不允许我们在那里传递 boolean 值。
谢谢
最佳答案
HashMap 的 get
方法定义为 public V get(Object arg0) {
。
这意味着您可以将任何对象作为参数。该方法不使用泛型,因此编译器不会检查参数。
在这里您可以找到javadoc .
关于java - 为什么java泛型允许在HashMap<Integer,String>的get中传递 boolean 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42970501/