我在过去的半个小时里一直在努力争取以下代码:
class X[A <% Ordered[A]] {
var x : A = null
}
我理解A
可以延长AnyVal
而不是AnyRef
,所以我可以使用像
class X[A <% Ordered[A] with AnyRef] {
var x : A = null
}
但这似乎也不起作用。
我应该怎么做?我不想在这里使用选项。
编辑: 我真正想要的是一种方法:
class X[A <% Ordered[A]] {
val array : Array[A] = ...
array(0) = null
}
答案 0 :(得分:3)
为该类型添加下限>: Null
。这意味着Null
是A
的子类型,因此A
可以将null
作为其值:
class X[A >: Null <% Ordered[A]] {
var x : A = null
}
答案 1 :(得分:3)
你可以写:
make all-gcc
这样可以获得A的默认值:
class X[A <% Ordered[A]] {
var x : A = _
}
不确定这是否适合您的使用案例;另见Kolmar的回答。