Generics 实例化泛型类(Java)

Generics 实例化泛型类(Java),generics,java-7,instantiation,type-inference,diamond-operator,Generics,Java 7,Instantiation,Type Inference,Diamond Operator,我一直被教导,当在代码中实例化泛型类以这样做时: ArrayList<String> a = new ArrayList<String>(); ArrayList a=新的ArrayList(); 但当我在Eclipse中工作时,它总是自动完成以下操作: ArrayList<String> a = new ArrayList <>(); arraylista=newarraylist(); 这两种说法有区别吗 后者只是Java7中的快捷语法

我一直被教导,当在代码中实例化泛型类以这样做时:

ArrayList<String> a = new ArrayList<String>();
ArrayList a=新的ArrayList();
但当我在Eclipse中工作时,它总是自动完成以下操作:

ArrayList<String> a = new ArrayList <>();
arraylista=newarraylist();

这两种说法有区别吗

后者只是Java7中的快捷语法(称为类型推断)

有关更多详细信息,请参阅。

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

在这种情况下,将应用类型推断。Thhus在构造函数调用时不需要显式声明参数化类型。

您应该这样做:
List a=new ArrayList()--针对接口而不是实现的程序。