2016-10-21 6 views
0

nullチェックサム注釈(@NotNull)の使用を最近開始したので、私はIntellij Idea's annotations libraryを使用してアクセスします。私はこれらの注釈が実行時に値がnullであるかどうかを調べるために動作するかどうかを調べようとしています。もしそうなら、それはどのようにこれらのエラーを処理しますか?(例えば、NullPointerExceptionを投げますか? 、false))。また、これらのアノテーションが機能しない場合は、実行時に機能するより標準化されたアノテーション(例:javax)と異なるセットがありますか?これらが機能しない場合は、標準のヌルチェックサム(if(x == null))に戻すか、標準ヌルチェックサムと同様に注釈を使用する必要がありますか?私がここにいる間、@ Nullableのような注釈は良い考えですか?ランタイム時に@NotNullが機能する

+1

null注釈の主な目的は、コンパイル時にnull関連の問題を静的に検出するためにコンパイラまたは類似のツールを支援することです。理想的には、静的解析をパスしたヌル注釈付きプログラムは、実行時にNPEを決して上げることはできません。生成されたランタイムチェックは、余分なセーフティネットであり、ヌル注釈の主な目的ではありません。 OTOHでは、必要なヌルチェックをアノテーションの使用に置き換えると、静的解析は必然的に問題を通知します。 –

答えて

1

はい、実行時にチェックし、nullの場合はIllegalArgumentExceptionをスローします。コンパイラの設定でこれを無効/有効にすることができます。

関連する問題