なぜこのコード スニペットがコンパイルおよび実行されるのか疑問に思っていました
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
その時点からの使用がないことを確認するのに十分賢いので、それは機能し、初期化する必要はまったくありませんか?