草庐IT

deceiving

全部标签

java - 泛型混淆 : deceiving the compiler

考虑一段代码:publicclassGenericsConfusion{publicstaticClassget(Classclazz){Mapmap=newHashMap();map.put(Integer.class,String.class);returnmap.get(clazz);}publicstaticvoidmain(String[]args){Classclazz=get(Integer.class);System.out.println(clazz);}}它可以完美地编译和运行。这个想法是在get方法中返回与输入类具有相同类型参数的类。但由于map的存在,它被打破了