메소드의 파라미터에는 반드시 final 키워드를 붙이는 컨벤션을 따르는 것이 좋다.
예측 가능한 코드를 만들기 위해서이다.
다변적인 변수는 프로그램의 흐름을 예측하기 힘들게 한다.
여기서 자바는 변수의 재할당을 막기 위해 final
키워드를 사용한다.
요청 파라미터로 hello를 입력 받고, 이를 그대로 디비에 저장하고 싶은데, 중간에 다른 예상치 못한 코드가 요청 파라미터를 변경시킬 수 있다.
public Memo(String value) {
validateLength(value);
value = "hello"; // 예상치 못한 코드
this.value = value;
}
이를 보완하기 위해 final
키워드를 붙이면, 재할당 시, 컴파일 에러를 발생시킬 수 있다.
public Memo(final String value) {
validateLength(value);
value = 1; // error: final parameter value may not be assigned
this.value = value;
}
윈도우 기준으로 인텔리제이에서 메소드 추출 리팩토링 시, 자동으로 final
키워드를 붙여줄 수 있다.
다음의 화면과 같이 설정해주면 된다.