Почему проявляется не доступен в конструкторе?

Рассмотрим этот код:

class Foo[T : Manifest](val id: String = manifest[T].erasure.getName)

Я в основном хочу хранить идентификатор в FO, что часто является только именем класса.

Подкласс, который не нужен специальный идентификатор, затем можно легко использовать значение по умолчанию.

Но это даже не скомпилируется, сообщение об ошибке:

error: No Manifest available for T.

Есть ли другой подход, который будет работать?

Редактировать:

Почему эта работа, если манифест не доступен до первичного конструктора. ?

class Foo[T: Manifest](val name: String) { 
  def this() = this(manifest[T].erasure.getName)
}
7
задан soc 6 September 2011 в 19:35
поделиться