Как передать ссылку на текущий экземпляр класса конструктору его свойства (при объявлении свойства)?
К примеру:
я создал класс One в котором есть класс Two который принимается при создании класса One:
class One {
final Two two;
One({ this.two });
}
а в классе Two я создаю объект One и передаю в качестве параметра созданный класс "Two":
class Two {
One one = One(two: <здесь я хочу передать ссылку на текущий экземпляр "Two">);
}
Ответы (1 шт):
Автор решения: yar85
→ Ссылка
Указатель на конечный экземпляр (this) недоступен в объявлении свойств класса - так как при объявлении свойств класса, его экземпляра попросту не существует. Класс это как схема/чертеж объекта, но не сам объект.
Получить ссылку на конечный экземпляр класса можно в конструкторе:
class One {
final Two two;
One({ this.two });
}
class Two {
One one;
Two() {
one = One(two: this);
}
}
Или, можно объявить свойство класса как late (с поздней/ленивой инициализацией) - тогда this уже будет доступен:
class Two {
late One one = One(two: this);
}