在Java中使用泛型

时间:2011-10-08 19:35:34

标签: java generics

我刚开始使用Java,所以对大多数人来说这可能是一个愚蠢的问题, 我想在我的代码中使用Set(假设我有一个T类),

Set<T> mySet;

Eclipse给出了一个错误:本地变量mySet可能尚未初始化。 比我试图初始化它:

Set<T> mySet = new Set<T>();

但是比Eclipse给出错误:“无法实例化类型Set”。

我在这里做错了什么?

4 个答案:

答案 0 :(得分:21)

Set<T>是一个接口,无法实例化。您可以使用HashSet<T>

Set<T> set = new HashSet<T>();

答案 1 :(得分:6)

Setinterface,无法实例化,您必须选择Set的实现,例如:

Set<T> mySet = new TreeSet<T>();

答案 2 :(得分:2)

Set是java.util中可用的接口。您无法实例化接口。您应该使用像HashSet,TreeSet等集合的实现。

所以声明应该是这样的。

Set<T> set = new HashSet<T>();

Set<T> set = new TreeSet<T>();

答案 3 :(得分:-2)

在Java中,不会在堆栈上创建对象。相反,你只需要一个必须初始化的引用。要创建新对象,您必须明确指定要使用的具体类。