В пункте 2 книги «Эффективная Java» (2-е издание) автор упоминает следующее о наложении инвариантов на параметры при использовании Builders:
Крайне важно, чтобы они проверялись после копирования параметров из построителя в объект и чтобы они проверялись в полях объекта, а не в полях построителя (пункт 39). Если какие-либо инварианты нарушены, метод сборки должен генерировать исключение IllegalStateException (статья 60).
Означает ли это, что после того, как метод сборки создал целевой объект, его следует передать процедуре проверки для любых необходимых проверок?
Кроме того, может ли кто-нибудь объяснить причину этого?