Viv*_*ani 3 java collections list arraylist java-7
以下声明之间是否有任何区别 -
List<String> list = new ArrayList<String>();
Run Code Online (Sandbox Code Playgroud)
和
List<String> list = new ArrayList<>();
Run Code Online (Sandbox Code Playgroud)
无论如何,在这两种情况下,list都只包含String类型的元素.
没有区别.但是,第一个在Java <= 7中是合法的,而第二个在Java 7中是合法的,并且作为简写符号*引入.编译器将从声明中推断出泛型类型.
*它基本上是为了删除冗余信息并减少代码噪声而引入的.所以你现在有:
Map<String, List<String>> myMap = new HashMap<>();
Run Code Online (Sandbox Code Playgroud)
与:
Map<String, List<String>> myMap = new HashMap<String, List<String>>();
Run Code Online (Sandbox Code Playgroud)
第一个在眼睛上更容易.