我有这门课程......
public class Entry <K, V> {
private final K mKey;
private final V mValue;
public Entry() {
mKey = null;
mValue = null;
}
}
如果我使用int作为mKey会发生什么?据我所知,整数不能为空!
答案 0 :(得分:6)
类型Integer
的变量可以为null。 int
不能为空。后者是原始类型,前者是用于将原语作为Object处理的包装器引用类型。如果你正在使用它:
Entry<Integer, String> myEntry;
然后你必须使用包装器类型。基元不能在Java中用作类型参数,因此您不能使用Entry<int, String>
(它不会编译)。
答案 1 :(得分:1)
您不能将基元用作类型参数。
答案 2 :(得分:0)
通用类型参数需要是对象,它们不能是基元。因此,您可以在mKey / mValue周围使用Integer
包装器类并将其设置为null,但尝试使用int原语将始终为您提供编译错误。