인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

주정준님의 프로필 이미지
주정준

작성한 질문수

더 자바, Java 8

강사님 람다식 변수 질문드립니다.

작성

·

355

0

람다식에서 사용되는 변수는 상수여아 한다고 강의를 해주셨는데요

public class FromIntRange {
public static int sum;
public static void main(String[] args) {
IntStream stream = IntStream.rangeClosed(1, 100);
stream.forEach(a -> sum += a);
System.out.println("총합 : " + sum);

}
}

위 예제에서 sum은 상수가 아닌데 오류가 안 나더라고요

실험삼아 public static int sum을

int sum으로 수정하고 main 메소드 안에다가 넣었더니

상수만 사용가능하다고 에러가 뜹니다.

너무 헷갈리네요 ㅠㅠ 어떻게 된건가요?

답변 1

1

백기선님의 프로필 이미지
백기선
지식공유자

람다 본문에서 밖에 있는 변수들 중에 local 변수랑 static 변수를 참조할 수 있는데 그 중에 local 변수는 사실상 final 이거나 명시적으로 final인 것만 참조할 수 있습니다.

주정준님의 프로필 이미지
주정준

작성한 질문수

질문하기