这两个声明有什么区别?
new ArrayList<String>();
new ArrayList();
它们有效,但第二个返回警告。我不明白为什么。
我了解 ArrayList<String> arr
之间的区别和ArrayList arr
,第一个启用类型检查控制。但是new ArrayList<String>()
呢?和new ArrayList()
?执行层面有什么区别吗?在控制方面我会失去什么?
最佳答案
在 Java 7 中,它可以自动检测类型,但您需要使用 Diamond Operator :
ArrayList<String> arr = new ArrayList<>();
它基本上是第一行的语法糖。如果没有菱形运算符,它是原始类型(非参数化泛型类型)。原始类型的存在是为了与不支持泛型的旧 Java 版本兼容,但在使用时会导致警告。
关于java - new ArrayList<String>() 和 new ArrayList() 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37211213/