以下Scala代码无法在Scala 2.7.7中编译,在最后一行中发现类型不匹配错误“found:Null(null)required:T” :当为参考类型传递null时,Scala 2.7.x类型不匹配错误
/**
* @param [T] key type
*/
class Key[T]
class Entry[T](val k: Key[T], val v: T)
def makeEntry[T <: AnyRef] = new Entry[T](new Key[T], null)
我充分意识到空的邪恶的,但我只想说,我确实需要这样做。这是一个编译器错误或程序员错误?
编辑:只是为了澄清,T是一个类型参数,而不是一个具体类型。直到我更仔细地阅读卡尔的回答之前,我才意识到这在原始问题中是模棱两可的。
FYI:使用REPL和Scala 2.7.5此代码工作在2.8 – 2009-12-10 21:40:10