parameter not enforce annotation java intellij-idea non-nullable

annotation - java enforce not null parameter



¿Por qué @Nonnull anotación verificada en tiempo de ejecución? (1)

Tengo una función con la siguiente firma

public static String myFunction(@Nonnull String param)

Cuando lo llamo con param como nulo, obtengo la siguiente excepción:

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 se supone que no se debe comprobar en tiempo de ejecución.

¿Quién realmente lanza la excepción y por qué?

PD: ejecuto el servidor Tomcat en modo de depuración desde IntelliJ IDEA 2016.3 con Oracle JDK 1.8.0_102


Cuando compila su proyecto en IntelliJ IDEA, instrumenta el @Nonnull de @Nonnull de las clases compiladas para agregar comprobaciones de tiempo de ejecución para varios tipos de anotaciones @Nonnull . Este comportamiento está controlado por la opción:

Configuraciones | Construcción, Ejecución, Implementación | Compilador | [x] Agregue aserciones de tiempo de ejecución para métodos y parámetros no anulados.