Мне интересно, влияет ли аннотация на параметр с @Nonnull
на поведение во время выполнения, или если оно строго используется для статического анализа.Действительно ли javax.annotation.Nonnull влияет на поведение во время выполнения?
ответ
JSR-305 имеет
Статус: спящих
и вопрос о статусе на Google group остается без ответа. Поэтому для него нет «официального» приложения, это лишь некоторые инструменты (например, Findbugs), которые могут выполнять статический анализ в зависимости от него.
Похоже, это проверяется только во время компиляции.
Oracle От:
@NonNull - компилятор может определить случаи, когда путь код может получить нулевое значение, без необходимости отладки NullPointerException.
Если я правильно прочитал это, это относится к 'org.checkerframework.checker.nullness.qual.NonNull', а не' javax.annotation.Nonnull', не так ли? –
Трудно даже сказать наверняка. Документация Oracle жалок. –
Правильно, этот конкретный параграф дает ** примеры ** для аннотаций типов, основанных на работе вокруг Framework Checkers. Они также имеют полный список аннотаций, которые выражают одно и то же намерение: http://types.cs.washington.edu/checker-framework/current/checker-framework-manual.html#nullness-related-work. Действительно, все они предназначены для статического анализа. BTW: В * полностью проверенной * программе не может произойти нарушение нулевых контрактов и, следовательно, во время выполнения ничего не остается проверить ... –
- 1. Действительно ли UTC_TIMESTAMP() влияет на летнее время?
- 2. Действительно ли gmtime() влияет на летнее время?
- 3. Column.DbType, влияющий на поведение во время выполнения
- 4. Режим промежуточной записи WebLogic влияет на производительность во время выполнения?
- 5. Действительно ли тип приведения влияет на скорость выполнения?
- 6. Side влияет на удаление JAR во время выполнения
- 7. Изменение UIImage во время выполнения влияет на недостающие ограничения
- 8. Полимер: зарегистрируйте поведение во время выполнения
- 9. javax.annotation.Nonnull vs assert
- 10. Действительно ли CPU действительно приостанавливается во время отладки сборки?
- 11. Как изменить поведение метода во время выполнения?
- 12. Поведение плохих указателей во время выполнения
- 13. Выберите поведение экземпляра во время выполнения
- 14. Странно MySQL поведение во время выполнения запроса
- 15. Квадратичное поведение во время выполнения Java Quicksort
- 16. Как включить влияет время выполнения на C++?
- 17. Может ли tangoApplication.m_3drResolutionMeters обновляться во время выполнения?
- 18. Сохраняет ли Java оптимизацию во время выполнения?
- 19. Действительно ли git влияет на мой экспресс?
- 20. Число строк влияет на время выполнения
- 21. Влияет ли тип столбца геометрии во время выполнения на производительность MySQL?
- 22. Влияет ли несколько сценариев (проектов) на время выполнения триггера?
- 23. Действительно ли cookie истекает во время сеанса?
- 24. «setInterval» влияет на поведение браузера?
- 25. Почему аннотация @Nonnull проверяется во время выполнения?
- 26. - отладочные журналы Android действительно лишены во время выполнения?
- 27. Неожиданное поведение во время UnitOfWork
- 28. Асимптотическое поведение во время работы
- 29. Встраивается ли во время компиляции или во время выполнения?
- 30. Выполняется ли установка во время выполнения или во время компиляции?
Аннотации, как правило, не влияют на поведение кода. – Holger