지역 변수의 유효범위를 최소화하는 가장 강력한 기법은, 처음으로 사용하는 곳에서 선언하는 것이다. 사용하기 전에 선언하면 프로그램의 의도를 알고자 소스 코드를 읽는 사람만 혼란스럽게 할 뿐이다. 또한 거의 모든 지역 변수 선언에는 초기값이 포함되어야 한다.
또한 순한문을 잘 쓰면 변수의 유효범위를 최소화할 수 있다. while문보다는 for문을 사용하는 것이 더 좋다.
위의 while문을 사용했을 때는 버그가 있다. 복사-붙혀넣기로 넣은 코드가 오류를 발생시키고 있는데, 두번째 while문의 i.hasNext() 부분이 잘못되었다. i의 유효범위안에 있기 때문에 위의 코드는 정상적으로 컴파일 되겠지만 마치 c2가 비어있는 것처럼 동작하고 말것이다. 하지만 for문을 사용하면 위와 같은 문제가 발생하지 않는다.
또 한가지 기법은 메서드의 크기를 줄이고 특정한 기능에 집중하라는 것이다. 두 가지 서로 다른 기능을 한 메서드에서 처리를 하면 한 가지 기능을 수행하는데 필요한 지역 변수의 유효범위가 다른 기능까지 확장되면서 문제가 생길 가능성이 높다.
'개발서적 > 이펙티브자바' 카테고리의 다른 글
[일반적인 프로그래밍 원칙들]규칙47. 어떤 라이브러리가 있는지 파악하고, 적절히 활용하라 (0) | 2017.05.05 |
---|---|
[일반적인 프로그래밍 원칙들]규칙46. for문보다는 for-each문을 사용하라 (0) | 2017.05.05 |
[메서드]규칙44. 모든 API 요소에 문서화 주석을 달라 (0) | 2017.05.05 |
[메서드]규칙43. null 대신 빈 배열이나 컬렉션을 반환하라 (0) | 2017.05.04 |
[메서드]규칙42. varargs는 신중히 사용하라 (0) | 2017.05.04 |