以下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