[英]Java Generics problems
我有这堂课...
public class Entry <K, V> {
private final K mKey;
private final V mValue;
public Entry() {
mKey = null;
mValue = null;
}
}
如果将int用作mKey会怎样? 据我所知,int不能为null!
类型为Integer
的变量可以为null。 一个int
不能为null。 后者是基元类型,前者是将基元作为对象处理的包装器引用类型。 如果您使用的是:
Entry<Integer, String> myEntry;
然后,您必须使用包装器类型。 在Java中,基元不能用作类型参数,因此您不能使用Entry<int, String>
(它将不会编译)。
您不能将基元用作类型参数。
泛型类型参数必须是对象,而不能是基元。 因此,您可以在mKey / mValue周围使用Integer
包装器类并将其设置为null,但是尝试使用int原语将始终给您带来编译错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.