两种声明有什么区别?
new ArrayList<String>();
new ArrayList();
Run Code Online (Sandbox Code Playgroud)
它们有效,但第二个返回警告。我不明白为什么。
ArrayList<String> arr我理解和之间的区别ArrayList arr,第一个启用类型检查控件。但是 和new ArrayList<String>()呢new ArrayList()?执行层面有什么区别吗?在控制方面我会失去什么?
在 Java 7 中,它可以自动检测类型,但您需要使用Diamond Operator:
ArrayList<String> arr = new ArrayList<>();
Run Code Online (Sandbox Code Playgroud)
它基本上是第一行的语法糖。如果没有菱形运算符,它是原始类型(非参数化泛型类型)。原始类型的存在是为了与不支持泛型的旧 Java 版本兼容,但在使用时会导致警告。
| 归档时间: |
|
| 查看次数: |
4211 次 |
| 最近记录: |