Я бы сказал, что эти нулевые проверки не не нужны.Если бы они были исключены, то equals
и hashcode
могли бы неправильно работать с объектами, которые не прошли проверку, и это могло бы вызвать всевозможные проблемы.
FOLLOWUP
Тогда какой смысл в аннотациях @NonNull, если вы все равно собираетесь проверять наличие нуля везде?
Смысл аннотации состоит в том, чтобы объявить действительнымЭкземпляр не имеет null
в этом атрибуте и позволяет реализовать механизм проверки на основе этого объявления.
Однако ничто не требует, чтобы экземпляры всегда были действительными.В самом деле, если бы это было так, то вы столкнулись бы со всевозможными проблемами реализации (например) при создании и связывании экземпляров вместе.