使一个局部变量的作用域最小化,最有力的技术是在第一次使用它的地方声明。避免在使用前很早就声明一个局部变量,这样扩大范围,造成误用。
几乎每一个局部变量在声明的时候都应该包含一个初始化表达式。但有时这对try-catch不容易做到,如果try里面才要使用这个变量,而try-catch后,还要继续使用这个变量,那么只能讲这个变量声明在try-catch之前,并且没有合适的初始化。
使用for循环比while容易避免变量的范围变大,后面误用。比如:
Iterator i = c.iterator();
while (i.hasNext()){
doSomething(i.next());
}
Iterator i2 = c2.iterator();
while (i.hasNext()){
doSomething(i2.next());
}
这样i都误用,导致无法遍历c2.
for(Iterator i = c.iterator(); i.hasNext(); ){
doSomething(i.next());
}
// Compile-time error - the symbol i cannot be resolved
for(Iterator i2 = c2.iterator(); i.hasNext();){
}
利用for循环,可以将i 作用域限定在循环中,避免了误用