创建<type>的新Arraylist与空类型<>的新Arraylist [重复]

创建像第一个方法这样的新Arraylist与第二个方法之间的实际区别是什么? 创建一个对象时,您要考虑什么?

  1. List<String> myList1 = new ArrayList<>();
  2. List<String> myList1 = new ArrayList<String>();
评论
喂,要爱我
喂,要爱我

除了Java版本(此代码是合法的)之外,没有其他区别:

List<String> myList1 = new ArrayList<>(); // works in Java 7+

List<String> myList1 = new ArrayList<String>(); // works in Java 5+
点赞
评论
Bill
Bill

You can find the answer here: https://docs.oracle.com/javase/tutorial/java/generics/genTypeInference.html in section Type Inference and Instantiation of Generic Classes But I've quoted it for you:

您可以替换调用构造函数所需的类型参数   具有空类型参数(<>)的通用类的时间   因为编译器可以从上下文推断类型参数。这个   这对尖括号被非正式地称为菱形。 ...
点赞
评论
真凝心
真凝心

它们之间的唯一区别是,第一个是使用Java 7中引入的Diamond运算符。它不能在Java的较早版本中使用。

点赞
评论