以下声明之间是否有任何区别 -
List<String> list = new ArrayList<String>();
和
List<String> list = new ArrayList<>();
无论如何,在两种情况下,list都只有String类型的元素。
答案 0 :(得分:5)
没有区别。但是,第一个在Java&lt; = 7中是合法的,而第二个在Java 7中是合法的,并且是作为简写符号 * 引入的。编译器将从声明中推断出泛型类型。
* 基本上是为了删除冗余信息并减少代码噪声。所以你现在有:
Map<String, List<String>> myMap = new HashMap<>();
与
Map<String, List<String>> myMap = new HashMap<String, List<String>>();
第一个在眼睛上更容易。