私は次のシグネチャ実行時に@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