JAVA
[이펙티브 자바]아이템 57 지역변수의 범위를 최소화하라
dev22
2023. 4. 11. 21:09
728x90
지역변수의 유효 범위를 최소로 줄이면 코드 가족성과 유지보수성이 높아지고 오류 가능성은 낮아진다.
지역변수의 범위를 줄이는 가장 강력한 기법은 역시 ‘가장 처음 쓰일 때 선언하기’다.
컬렉션이나 배열을 순회하는 권장 관용구
for(Element e: c){
...
}
반복자를 사용해야 하는 상황이면 for-each 문 대신 전통적인 for문을 쓰는 것이 낫다.
for(Iterator<Element> i = c.iterator(); i.hasNext();){
Element e = i.next();
...
}
for문은 변수 유효 범위가 for문의 범위와 일치하여 똑같은 이름의 변수를 여러 반복문에서 써도 서로 아무런 영향을 주지 않는다.
<while문>
Iterator<Element> i = c.iterator();
while(i.hasNext()){
doSomething(i.next());
}
...
Iterator<Element> i2 = c2.iterator();
while(i.hasNext()){ //버그 - 위와 동일 변수 사용
doSometingElse(i2.next());
}
<for문>
for(Iterator<Element> i = c.iterator(); i.hasNext();){
Element e = i.next();
...// e와 i로 무언가를 한다.
}
//다음 코드는 "i를 찾을 수 없다"는 컴파일 오류를 낸다.
for(Iterator<Element> i2 = c2.iterator(); i.hasNext();){
Element e2 = i2.next();
...// e2와 i2로 무언가를 한다.
}