我有一個函數具有以下簽名爲什麼在運行時檢查@Nonnull註釋?
public static String myFunction(@Nonnull String param)
當我把它用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