我有以下Scala代码:
class X[T1 <: AnyRef] {
var _x : T1 = null
}代码_x = null突出显示为错误:
error: type mismatch;
found : Null(null)
required: T1
var _x : T1 = null : T1如果我添加Null类型约束,一切都会正常工作。为什么会发生这种情况?Scala将AnyRef定义为java.lang.Object的等价物,当然,它可以为空。
发布于 2012-06-27 23:51:52
class X[T1 <: AnyRef] {
var _x : T1 = null
}如果您希望它可以为空,请用T1 >: Null替换T1 <: AnyRef。
为什么会发生这种情况?
Nothing是AnyRef的子类型,Nothing不能为空。
https://stackoverflow.com/questions/11215915
复制相似问题