У меня есть функция со следующей подписьюПочему аннотация @Nonnull проверяется во время выполнения?
public static String myFunction(@Nonnull String param)
Когда я называю его парами как нулевые, я получаю следующее исключение:
Caused by: java.lang.IllegalArgumentException: Argument for @Nonnull parameter 'param' of com/MyClass.myFunction must not be null
at com.MyClass.$$$reportNull$$$0(MyClass.java)
javax.annotation.Nonnull предполагается не должны быть проверено во время выполнения ,
Кто на самом деле выбрасывает исключение и почему?
P.S. Я бег сервера Tomcat в режиме отладки из IntelliJ IDEA 2016.3 с Oracle JDK 1.8.0_102
На самом деле @Jesper, эти новые аннотации были сделаны так: проверьте вещи во время компиляции. Вы можете проверить мой ответ .. «Когда вы компилируете код, в том числе модуль NonNull в командной строке, компилятор выводит предупреждение, если обнаруживает потенциальную проблему» – BrunoDM
@BrunoDM - это исключение во время выполнения – Dmitry