Рассмотрим этот код:
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)
}