整数的哈希集合

时间:2014-02-06 22:21:51

标签: java generics inheritance abstract-class hashset

public class MyClass<Integer> extends AnotherOne<Integer> {
    public MyClass(HashSet<Integer> ar) {    
        super(ar);
    } 
}

AnotherOne是一个抽象(泛型)类,它有一个构造函数,它将HashSet<T>作为参数。然后它有另一种方法,它使用T类型作为参数。

一切正常,但我必须使用Integer作为参数来覆盖该方法,而使用Integer代替int似乎很奇怪。有没有办法使用原语int?

2 个答案:

答案 0 :(得分:4)

不,你不能将原始int用于HashSet。

这也适用于所有其他通用集合类。

答案 1 :(得分:3)

不,泛型不能将原始类型作为泛型类型参数;它必须是引用类型,例如Integer

此外,您正在声明一个现在隐藏实际Integer类的泛型类型参数java.lang.Integer。如果MyClass本身不是通用的,那么将其从类中删除:

public class MyClass extends AnotherOne<Integer>

如果是,请使用单个大写字母表示泛型类型参数:

public class MyClass<T> extends AnotherOne<T>