将Diamond运算符类型放在Java中的位置

时间:2015-09-29 01:54:35

标签: java

这两行代码有什么区别?我一直在使用第一个,但我不知道为什么。我不知道哪一个是正确的,因为netbeans没有给我一个错误(我还没编译)。

ArrayList<String> test = new ArrayList<>();
ArrayList test2 = new ArrayList<String>();

1 个答案:

答案 0 :(得分:2)

第二个是错误,因为你放弃了通用。

第一个只是简写:

ArrayList<String> test = new ArrayList<String>();

如果您有列表地图,则会产生更大的差异:

HashMap<String, ArrayList<Integer>> map = new HashMap<String, ArrayList<Integer>>();
HashMap<String, ArrayList<Integer>> map = new HashMap<>(); // much nicer