您声明时
List a没有类型参数。这就是eclipse抱怨类型安全的原因,因为您可以将任何类型的对象添加到该列表中。
如果您查看ArrayList
api并查看类声明,则会看到它的声明如下:
public class ArrayList<E>
将E替换为所需的任何类。
在
List<Integer> b您明确告诉编译器之后,该列表将
Integer仅保存对象的实例,并且编译器可以对此进行验证,从而为您提供类型安全。

您声明时
List a没有类型参数。这就是eclipse抱怨类型安全的原因,因为您可以将任何类型的对象添加到该列表中。
如果您查看ArrayList
api并查看类声明,则会看到它的声明如下:
public class ArrayList<E>
将E替换为所需的任何类。
在
List<Integer> b您明确告诉编译器之后,该列表将
Integer仅保存对象的实例,并且编译器可以对此进行验证,从而为您提供类型安全。