현재 질문 게시판에 있는 함수형 글에 호기심이 가서 학습 및 정리를 위해 간단히 글을 작성해보았습니다.
*불필요하게 긴 설명과 잘못된 내용이 조금 있어 수정했습니다.
이번 오류는 람다가 외부에서 값을 읽어온 후 참조하는 과정에서 발생했습니다. 현재 Number클래스 내부에서는 number필드 변수에 final 키워드가 있으면서 값을 명시적으로 할당해주지 않았고, 값이 할당되어 있지 않은 상태에서 divisionByNumber 필드가 number의 값을 참조하려 하고 있습니다. 오류 메시지 또한 이와 같습니다.
즉, 이는 초기화 되지 않은 변수를 참조하고 있기 때문에 발생한 문제인데요, 이를 정리하면 아래와 같습니다.
public class Number {
private final int number;
// 생성자에서 받는 경우는 즉시 할당하지 않아도 된다.
public Number(int number) {
this.number = number;
}