如何使用泛型在Java中实例化一个集合?

如何使用泛型在Java中实例化一个集合?

问题描述:

最新最好的方式:如何使用泛型在Java中实例化一个集合?

Set<String> myStringSet = new HashSet(); 

或者

Set<String> myStringSet = new HashSet<String>(); 

以上都不对?

重要吗?

+0

检查这个问题,并接受的答案: http://*.com/questions/4166966/what-is-the-point-of-the-diamond-operator-in-java-7 – 2011-12-13 23:16:13

+2

在Java SE 7(OUT NOW!)`设置 myStringSet = new HashSet ();` – 2011-12-14 00:21:28

后者:

Set<String> myStringSet = new HashSet<String>(); 

更多信息参见the Java documentation on generic types

你应该总是初始化集合与泛型类型

Set<String> myStringSet = new HashSet<String>(); 

否则,你将得到一个警告

Type safety: The expression of type HashSet needs unchecked conversion 
to conform to Set <String>. 

二是进行最好的,最安全的方式。

Set<String> myStringSet = new HashSet();将编译并给予...uses unchecked or unsafe operations.警告。如果您使用的是不具有泛型类型说明符的集合(HashSet()而不是HashSet<String>()),则会在Java 5及更高版本中出现。

省略泛型类型说明符将检查你使用的HashSet在类型安全的方式,使用泛型禁用编译器。