Java 7中的钻石操作符允许如下代码: List<String> list = new LinkedList<>(); 但是在Java 5/6中,我可以简单地写出: List<String> list = new LinkedList(); 我对types擦除的理解是这些完全一样。 (无论如何,这个generics在运行时会被删除)。 为什么要钻石呢? 它允许什么新的function/types安全? 如果它不产生任何新的function,为什么他们提到它作为一个function? 我对这个概念的理解是否有缺陷?