Здравствуйте, BlackEric, Вы писали:
BE>Мы используем
BE>BE> null!
BE>
Это понятно. Но гордиться тем, что ходишь на костылях — так себе.
BE>В принципе этого достаточно.
Этого ни разу не достаточно. null! тупо отключает проверку, а не позволяет решить проблему.
BE>Блок init не будет путать разработчиков?
Чем? Семантика вполне себе понятная. Мы просто делаем блок в рамках которого можно нарушать правила, а за пределами которого они будут проверены.
Получается что-то типа внешнего конструктора гарантирующего, что за его пределами все ссылки установлены и их нулабельность проверена и не содержит ошибки.