Scala требует инициализации вашей переменной экземпляра перед ее использованием. Однако Scala не предоставляет значение по умолчанию для вашей переменной. Вместо этого вы должны настроить его значение вручную, используя подчеркивание подстановочного знака, которое действует как значение по умолчанию, как показано ниже.
var name:String = _
Я знаю, я знаю... Я могу определить конструктор в определении класса, который принимает в качестве параметра нашу переменную экземпляра, поэтому Scala не заставляет свою инициализацию, как показано ниже
class Person(var name:String)
Однако мне нужно объявить его в теле, потому что мне нужно использовать аннотацию Java, ElementType которой FIELD или METHOD; то есть его можно просто применить к переменной экземпляра или методу, объявленным в теле нашего класса.
Вопрос: Почему язык Scala требует инициализации переменной экземпляра - будь то значение по умолчанию _ или что угодно - объявлено в теле класса вместо того, чтобы полагаться на значение по умолчанию?