Dan*_*iel 3 java initialization
我看到很多SO帖子说Java将任何未初始化的变量设置为null(就像这里,这里或这里 ......).
但最近,我去当这个代码,由谷歌写在这里:
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.
...
}
Run Code Online (Sandbox Code Playgroud)
我真的宁愿这样做:
// 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);
Run Code Online (Sandbox Code Playgroud)
我认为Google开发人员在某种程度上是合格的,所以我想知道,因为我们处于同一范围:宣布第一种方式而不是第二种方式的优缺点是什么?
这是一个风格问题.我没有不必要地初始化,原因有两个:
如果遇到未在所有控制路径上初始化的变量,那么Java编译器将为您提供额外检查,因为编译将不会成功.
它给人的印象null是参考的可接受值,通常它不是.
| 归档时间: |
|
| 查看次数: |
756 次 |
| 最近记录: |