変数の宣言位置はスコープで決める
ループ内のみで使う変数の宣言位置について。
■A
for (Map<String, String> map : list) {
String var = map.get(KEY);
.
.
.
}
とするか、
■B
String var;
for (Map<String, String> map : list) {
var = map.get(KEY);
.
.
.
}
とするか。
半刻ほど調べた結論としては、中に入れるべき(Aがベター)のようです。
理由としては、
といったところ。
ただ、オブジェクトを生成している場合(右辺が new なんたら)や思い処理を行っている場合は、可能な限り外に出すことが望ましいです。ループの継続判定部分なんかは見落としがちなので注意しましょうっ。
まとめ:ループ内で使う変数の宣言位置はスコープを優先して決める
■参考
codeなにがし::ループの中の変数宣言
http://code.nanigac.com/forum/view/127
ループ内で変数を宣言しない方が良いのか: 雪羽の発火後忘失
http://feather.cocolog-nifty.com/weblog/2010/05/post-a00a.html