- Local variable defined in an enclosing scope must be final or effectively final
forEach 문 안에서 변수 초기화를 시도하였으나, 에러를 만나게 되었다.
해당 에러는 람다(Lambda)식을 사용할 때 발생하는 에러이다.
바깥쪽 범위에 정의된 지역 변수는
final이거나 사실상 final이어야 합니다.
람다 안은 익명 클래스(anonymous inner class)이다 보니, 자바 컴파일러가 k, v와 같은 파라미터로 사용하는 변수와 로컬 변수를 구분하지 못한다고 한다.
해결방법으로는 클래스 단에서 변수를 만든 뒤에 사용해주면 된다.
- 참고자료
자바 Local variable '변수명' defined in an enclosing scope must be final or effectively final 에러 해결방법
해당 에러는 람다(Lambda)식을 사용할 때 발생하는 에러인데 String 배열 arr을 stream 형태로 변환한 뒤 forEach를 돌리면서 String s에 ABC를 넣어주려고 하는 코드인데 보면 Local variable '변수명' defined in an
wakestand.tistory.com