nullable、つまりNonNullとNullableに関するアノテーションを正しく使用する方法については明確ではありません。
私は、次のようなもので、本当に快適ではないです:null以外のnull可否アノテーションの意味を作る
public void foo(@NonNull ArrayList<CustomObject> list) {
CustomObject o = list.get(0); //etc
}
1)は、非感守備null以外とコードを宣言することですか?
2)このようなアノテーションを使用する最も効果的な方法は何ですか?例えば。例として
- ビルダーパターンを使用するときにそれらをどのように使用するのですか?
- 実装する具体的なクラスのインタフェースを定義するとき?クラスを実装するメソッドにもアノテーションが含まれているか、それとも想定されていますか?
3)上のスニペットでは、非NULL とを空ではないと定義する方法はありますか?
私は変数がnullではないことが保証されている知っているとき、私は通常、 '@ NonNull'を使用します。
3)
上記を考えると、私はそれをこのようにしてください。私が知っている限り、コンパイルされたコードには違いはありませんが、IDEのすべての "null"警告が抑制されます。逆に私は変数がnullになることが必要な場合があるところで '@ Nullable'を使います。 –
@MichaelDodd:あなたのコードを見直す際に、あなた自身の文書化目的のためではありませんか? *他の* devsが使用/アクセスする方法はどうですか?モジュールまたはライブラリの一部であることを意図したユーティリティメソッドまたはメソッド? – Jim
ドキュメンテーションと読みやすさは、 'android-annotations'の目的全体です。職場の私のチームでは、それらの注釈を広範囲に使用して、変数が決して「null」ではないことを明確にしています。同様に、ライブラリメソッドaに注釈が付いている場合、 'null'チェックが必要かどうかのアドバイスになります。 –