Когда использовать аннотации @NotNull и @Nullable IntelliJ? - PullRequest
0 голосов
/ 03 октября 2018

Я только начал работать с этими аннотациями IntelliJ IDEA Java, но я не понимаю, когда мне следует их использовать, тем более что IDEA может выводить их большую часть времени.

Ребята, вы следите за какой-топравила?Я не хотел бы видеть каждый параметр или поле, помеченные ими, вероятно, код стал бы беспорядком.
Я понимаю, что это можно считать основанным на мнении, но все же я хотел бы прочитать ответы.

Ответы [ 3 ]

0 голосов
/ 03 октября 2018

Как уже упоминали другие , эти аннотации используются для указания IDE, что что-то (аргумент, атрибут и т. Д.) Может (или не может) быть null.Таким образом, это поможет вам обнаружить, возможно, неправильный код.

Это не правило "100%" *, которое нужно соблюдать, а еще один инструмент , помогающий разработчику кодировать более надежную и менее значимую ошибку.склонный код при использовании IDE.

Если вы программируете в одиночку, команда небольшая, вы работаете в небольшом проекте или в любой подобной ситуации ... и вы чувствуете себя комфортно без него,тогда не используйте это, поскольку это правда, код становится как-то многословным.Это не означает, что это бесполезно для любой из предыдущих ситуаций (на самом деле это может быть очень полезно).

С другой стороны, если вы считаете, что вам нужен дополнительный инструмент, помогающий обнаружить возможный сбойкод против не «обнуляемых» значений, или, например, вы кодируете API, который будет использоваться третьей стороной, и хотите использовать эту аннотацию вместо нескольких assert внутри блока кода ... затем переходите к нему.

Все дело в том, чтобы оценить плюсы и минусы в проекте, где вы можете применить эти аннотации и решить, может ли это дать вам больше преимуществ, чем "проблемы"это может вызвать.

0 голосов
/ 04 октября 2018

Вероятно, наиболее полезно использовать эти аннотации в общедоступных API-интерфейсах, где IntelliJ IDEA не может автоматически выводить их.Другими словами, общаться с другими разработчиками.Таким образом, параметры и возвращаемые типы открытых методов в открытых интерфейсах определенно являются кандидатами на аннотации @Nullable / @NotNull.

0 голосов
/ 03 октября 2018

Аннотация @Nullable помогает обнаружить:

Вызовы методов, которые могут возвращать ноль.Переменные (поля, локальные переменные и параметры), которые могут быть null.

Аннотация @NotNull на самом деле является явным контрактом, декларирующим, что:

Метод не должен возвращать null Переменные (поля, локальные переменные и параметры) не могут содержать значение null.

Например, если вы создаете метод, в котором параметр имеет @NotNull аннотации, а затем вызовите этот метод с параметром, который потенциально может быть null, IntelliJ IDEA высветит проблему на лету.

Используйте @Nullable просто чтобы объявить, чтоваша переменная или метод может содержать значение null.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...