我看到很多SO帖子,說Java將任何未初始化的變量設置爲null(如here,here或here ...)。我應該使用它們之前初始化我的變量爲空?
但最近,我去當這個代碼,谷歌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);
我認爲谷歌developpers都弄好了真正合格的,所以我奇怪,因爲我們處在同一個範圍內:宣佈第一種方式而非第二種方式有什麼優缺點?
我認爲這是一個風格問題,以及您的編程風格應該如何基於公司標準(甚至是個人標準)。它們可能對他們更易讀。但最終這個問題在我眼中是基於意見的。 – SomeJavaGuy
這不是那些帖子說的。 Java只將未初始化的成員變量和靜態變量設置爲null。這不適用於局部變量。 – khelwood
當我學會了在70年代編程時,我使用了Pascal,這是一種當時需要您將變量聲明與其使用分開的語言。我仍然有時會看到當時的風格正在延續(儘管越來越少)。在像Java這樣的現代編程語言中,無論我多麼認同Google開發人員通常非常合格,我個人的口味顯然是針對Google的版本。 –