Я думаю, что они имеют в виду логическую инициализацию.Например, в вашем классе A есть метод init()
, который необходимо вызвать перед использованием любых бизнес-методов.Но другой программист, который использует этот класс, не читал руководство и написал new A().foo()
.Вероятно, в этом случае foo()
не может работать правильно.В этом случае утверждение может быть полезным.В начале вы можете проверить, что init()
не был вызван, и выбросить утверждение.
То же самое с конструкторами.Это может произойти, когда кто-то продлит ваш класс A:
class B extends A {
B() {
foo(); // init() must be called before foo!
}
}