Variable used in lambda expression should be final or effectively final

Java

람다 캡처링 :: Variable used in lambda expression should be final or effectively final의 이유

Intellij가 알아서 고쳐주던 아래 에러에 대해서 좀 더 깊숙히 알고자 정리하는 글입니다. Variable used in lambda expression should be final or effectively final 에러에 대한 결론부터 람다 실행시에 실행되던 메소드의 스택 영역에 저장되는 외부 변수들에 대해서는 참조만 가능하고 값 변경은 불가 → final or effectively final 변수만 사용 가능한 이유 외부 Reference type 변수에 대한 변경은 힙 메모리 데이터를 변경하는것이기 때문에 가능 (변수 초기화 같은 스택 참조값 변경은 동일하게 불가) 위 현상들의 이유는 람다가 실행될때 람다 캡처링이 일어나면서 발생하는 현상 람다 캡처링이 일어나게되면 람다의 새로운 스택을 생성..

코비코비
'Variable used in lambda expression should be final or effectively final' 태그의 글 목록