【发布时间】:2009-12-10 21:23:46
【问题描述】:
以下 Scala 代码无法在 Scala 2.7.7 中编译,最后一行出现类型不匹配错误“found: Null(null) required: T”:
/**
* @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 是一个类型参数,而不是具体类型。直到我更仔细地阅读了卡尔的回答,我才意识到这在原始问题中是模棱两可的。
【问题讨论】:
标签: scala compiler-errors