@soc - обычно лучше избегать подчеркивания, сильно перегруженного символа, если этого не требует спецификация.
отрим этот код:
class Foo[T : Manifest](val id: String = manifest[T].erasure.getName)
Я в основном хочу хранить идентификатор в Foo, который часто является просто именем класса.
Подкласс, который не нуждается в специальном идентификаторе, может легко использовать значение по умолчанию.
Но это даже не компилируется, сообщение об ошибке:
error: No Manifest available for T.
Есть ли другой подход, который будет работать?
РЕДАКТИРОВАТЬ:
Почему это работает, если манифест недоступен до основного конструктора?
class Foo[T: Manifest](val name: String) {
def this() = this(manifest[T].erasure.getName)
}