Effectively final
·
PL/모던 자바 인 액션
Effectively final이란? final로 선언되지는 않았지만, 초기화된 이후 참조가 변경되지 않아 결과적으로 final처럼 동작하는 변수 자바의 익명클래스나 람다 표현식에서 식 외부에 있는 지역 변수를 참조할때는 반드시 final이거나 선언 후 참조가 변경되지 않는 effectively final이어야한다. 아래와 같이 final이 아닌 count를 익명 클래스에서 참조하면 다음과 같은 에러가 발생한다. 그렇다면 final은 알겠는데 Effectively Final은 무엇일까? 다음 조건을 만족하는 지역변수를 effectively final이라고 한다. - final로 선언되지 않았다. - 초기화 진행 후 다시 할당되지 않았다. - 전위, 후위에 증감 연산자가 존재하지 않는다. (++등) 객체의..