Javaが初期化されていない変数をヌルに設定しているという(NO:here、hereまたはhere ...)というSOの投稿が多く見受けられました。変数を使用する前に変数をnullに初期化する必要がありますか?
しかし、最近、私はGoogleのhereによって書かれた、このコードに行ってきました:
cur = cr.query(builder.build(), INSTANCE_PROJECTION, selection, selectionArgs, null);
while (cur.moveToNext()) {
String title = null;
long eventID = 0;
long beginVal = 0;
// Get the field values
eventID = cur.getLong(PROJECTION_ID_INDEX);
beginVal = cur.getLong(PROJECTION_BEGIN_INDEX);
title = cur.getString(PROJECTION_TITLE_INDEX);
// Do something with the values.
...
}
私は本当に、むしろこれを行うだろう:
// Get the field values
long eventID = cur.getLong(PROJECTION_ID_INDEX);
long beginVal = cur.getLong(PROJECTION_BEGIN_INDEX);
String title = cur.getString(PROJECTION_TITLE_INDEX);
を私は、Googleのdeveloppersは何とか本当に資格があると仮定し、そのI私たちはまったく同じ範囲にあるので、疑問に思っています。第二のものの代わりに第一の方法を宣言することの長所と短所は何ですか?
これは、スタイルの問題であり、プログラミングスタイルが企業の標準(または個人的な基準)に基づいてどのように見えるかということでした。それはもっと読みやすいかもしれません。しかし、結局のところ、この質問は私の目ではむしろ意見に基づいています。 – SomeJavaGuy
それはそれらの記事が言っているものではありません。 Javaでは、初期化されていないメンバ変数と静的変数のみがnullに設定されます。これはローカル変数には当てはまりません。 – khelwood
私は70年代にプログラムすることを学んだとき、私はPascalを使用していました。その言語では、変数の宣言をその使用から分離する必要がありました。私はまだ時々時々、スタイルが次第に変わっていくのを目の当たりにしています。 Javaのような最新のプログラミング言語では、私の個人的な好みは、Googleの開発者が最もよく認定されていることにどれほど合意しても、あなたのバージョンのGoogleにとっては明らかです。 –