Следующий код Scala не может быть скомпилирован в Scala 2.7.7, обнаружена ошибка несоответствия типа ": 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 - это параметр типа, а не конкретный тип. Я не осознавал, что исходный вопрос был двусмысленным, пока не прочитал ответ Карла более внимательно.