まだ初期化されているかどうかにかかわらず、いくつかのフラグメントのIDを取得しようとしています
int i = myFragment.getId();
、int j = mySecondFragment.getId();
。
私の質問: 各有効なフラグメントのID を取得するためのよりクリーンな/より良い方法はありますか?
if (myFragment != null) {int i = myFragment.getId();}
?
そのためにGoogle Guavaを使用できます。
もちろん、同様の機能を実装することもできますが、Guava はいくつかの素晴らしい例を示しています。
たとえば、引数がnullになる可能性があると想像してください。それをOptional
考えてみましょう。そうであればすぐに失敗し、nullを受け入れないでください。または、デフォルト値を定義します。
public void method(Integer arg){
Optional<Integer> possible = Optional.fromNullable(arg);
Integer myNum = possible.get(); // Throws exception if arg is null
Integer myNum2 = possible.or(0); // returns 0 if arg is null
}
アイデアは、null がアプリケーションの特定のレベルに渡されないようにすることです。理想的には、ビュー (または DB から戻る途中の永続化レイヤー) を決して通過しないようにすることです。
このアイデアが最後まで実行された場合。ビジネス層の中核では、null について心配する必要はありません。
グアバでできることは他にもたくさんあります。私の提案に従うことにした場合は、必ずそれを最大限に活用してください:)
それがあなたがよくすることなら、あなたのためにチェックを行う関数を作ることができます。したがって、入力する代わりに
if (myFragment != null) {int i = myFragment.getId();}
いつでも次のようなことができます
public ID getFragmentId(Fragment myFragment){
if (myFragment != null) {
return myFragment.getId();
} else {
return someDefaultValue;
}
}
あとは電話するだけ
i = getFragmentID(myFragment);
多くの繰り返し入力を回避し、コードを少し明確にします。