Автоматически генерирует equals и hashCode в Eclipse, который знает аннотации @NonNull

Есть ли способ настроить Eclipse для автоматической генерации hashCode а также equals с осознанием @NonNull аннотации? В настоящее время мой Eclipse генерирует код с ненужным null проверяет, даже на полях, которые отмечены @NonNull,


Обратите внимание, что FindBugs будет выдавать предупреждения о том, что эти нулевые проверки являются избыточными. Конечно мы можем добавить@edu.umd.cs.findbugs.annotations.SuppressWarnings("RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE") к методам, но это, кажется, подрывает роль FindBugs и @NonNull на первом месте.

Мне кажется, что лучшее решение - Eclipse знать о JSR 305 и генерировать equals а также hashCode соответственно без null проверяет (и если они null в любом случае, так и будет, и пусть NullPointerException быть брошенным естественно, потому что произошло нарушение контракта).

Если не считать того, что есть способ настроить equals а также hashCode Шаблон, сгенерированный Eclipse, тоже подойдет.

Смежные вопросы

1 ответ

Я бы сказал, что эти нулевые проверки не являются ненужными. Если они были опущены, то equals а также hashcode будет плохо себя вести на объектах, которые не проходят проверку, и это вызовет всевозможные проблемы.

СЛЕДОВАТЬ ЗА

Тогда какая польза от аннотаций @NonNull, если вы все равно собираетесь проверять наличие нуля везде?

Смысл аннотации состоит в том, чтобы объявить, что действительный экземпляр не имеет null в этом атрибуте, и позволяют реализовать механизм проверки на основе этого объявления.

Однако ничто не требует, чтобы экземпляры всегда были действительными. Действительно, если бы это было так, то вы столкнулись бы со всевозможными проблемами реализации (например) при создании и связывании экземпляров вместе.

Другие вопросы по тегам