Java泛型问题

时间:2011-03-23 18:09:27

标签: java generics integer

我有这门课程......

public class Entry <K, V> {
    private final K mKey;
    private final V mValue;

    public Entry() {  
        mKey = null;
        mValue = null;   
    }
}

如果我使用int作为mKey会发生什么?据我所知,整数不能为空!

3 个答案:

答案 0 :(得分:6)

类型Integer的变量可以为null。 int不能为空。后者是原始类型,前者是用于将原语作为Object处理的包装器引用类型。如果你正在使用它:

Entry<Integer, String> myEntry;

然后你必须使用包装器类型。基元不能在Java中用作类型参数,因此您不能使用Entry<int, String>(它不会编译)。

答案 1 :(得分:1)

您不能将基元用作类型参数。

答案 2 :(得分:0)

通用类型参数需要是对象,它们不能是基元。因此,您可以在mKey / mValue周围使用Integer包装器类并将其设置为null,但尝试使用int原语将始终为您提供编译错误。