2つの違いは何ですか?どちらも、値がnullである可能性があることを意味しているようであり、それに応じて処理する必要があります。つまり、nullをチェックする必要があります。
更新: 上記の2つの注釈は、JSR-305 / FindBugsの一部です:http: //findbugs.sourceforge.net/manual/annotations.html
2つの違いは何ですか?どちらも、値がnullである可能性があることを意味しているようであり、それに応じて処理する必要があります。つまり、nullをチェックする必要があります。
更新: 上記の2つの注釈は、JSR-305 / FindBugsの一部です:http: //findbugs.sourceforge.net/manual/annotations.html
あなたが追加したリンクからそれはかなり明白だと思います: を@CheckForNull
使用し、値を使用するコードが をチェックしない場合null
、FindBugs はそれをエラーとして表示します。
FindBugs は無視し@Nullable
ます。
実際には、この注釈は、包括的な注釈をオーバーライドする場合にのみ役立ちます
NonNull
。
@CheckForNull
値を常にチェックする必要がある場合に使用します。@Nullable
どこで使ってnull
もOK。
編集:@CheckForNull
現時点では十分にサポートされていないようですので、それを避けて使用することをお勧めします(どの @NotNull Java アノテーションを使用する必要がありますか?@NonNull
も参照してください)。もう 1 つのアイデアは、FindBugs の開発者と直接連絡を取って、ドキュメントの不一致について意見を求めることです。
IntelliJ Idea@javax.annotation.Nullable
はデフォルトでサポートされており、@Nullable
引数を逆参照したり値を返したりしようとすると警告が発生します。
@ alexander-pavlov、@javax.annotation.CheckForNull
「一定の条件と例外」インスペクションの構成に追加できます。File->Settings->Inspections->Probable bugs->Constant conditions & exceptions->Configure annotations に移動します。
上記の彼の回答で述べた@lbalazscs@CheckForNull
よりも明確な意味があるので、これを行うことを好みます。@Nullable