Dlaczego adnotacja @ Nonnull sprawdzana w czasie wykonywania?
Mam funkcję z następującym podpisem
public static String myFunction(@Nonnull String param)
Kiedy wywołuję go z param jako null, otrzymuję następujący wyjątek:
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.adnotacja.Nonnull nie powinien być sprawdzany w czasie wykonywania.
Kto tak naprawdę rzuca wyjątek i dlaczego?
P. S. uruchamiam serwer Tomcat w trybie debugowania z IntelliJ IDEA 2016.3 z Oracle JDK 1.8.0_102
46
1 answers
Kiedy kompilujesz swój projekt w IntelliJ IDEA, ustawia on kod bajtowy skompilowanych klas, aby dodać testy uruchomieniowe dla różnych smaków adnotacji @Nonnull
. To zachowanie jest kontrolowane przez opcję:
Settings | Build, Execution, Deployment | Compiler | [x] Add Runtime assertions for not-null-adnotated methods and parameters.
75
Author: yole,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-28 15:25:50
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-28 15:25:50