public class MyClass<Integer> extends AnotherOne<Integer> {
public MyClass(HashSet<Integer> ar) {
super(ar);
}
}
AnotherOne
是一个抽象(泛型)类,它有一个构造函数,它将HashSet<T>
作为参数。然后它有另一种方法,它使用T
类型作为参数。
一切正常,但我必须使用Integer
作为参数来覆盖该方法,而使用Integer
代替int
似乎很奇怪。有没有办法使用原语int?
答案 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>