我想知道爲什麼這個代碼片斷編譯和運行爲什麼下面的代碼會被編譯?
private BusRoute readRouteCursor(final Cursor c)
{
final BusRoute result;
final int count;
if (c == null || (count = c.getCount()) < 1)
{
result = null;
}
else
{
/*
* Reads cursor
*/
}
return result;
}
我有它工作得很好,但是當我停下來想想我不知道爲什麼,作爲變量count
是final
但很有可能它不如果滿足if
子句的第一個條件,則設置該值。
它是否工作,因爲編譯器足夠聰明,從這一點上看沒有count
的用法,它不需要初始化?
最後一個變量只能初始化一次,所以從你向我們展示的代碼是很好的。 – andre
結果只有一個初始化,在這裏 – njzk2
感謝您清除那一個球員:) – ScouseChris