해결된 질문
작성
·
255
0
답변 1
1
좋은 질문이네요. 람다식을 사용하면 final 변수 또는 "사실상"(effective) final 변수만 람다식 내부에서 참조할 수 있습니다.
람다식을 사용해서 "익명 클래스"를 생성하는 것은 아니구요. 해당 하는 타입의 객체를 만들 수는 있죠. 어디까지나 익명 클래스와 람다식은 다르니까요.
그리고 자바 특정 함수(Consumer)는 부수 효과가 있습니다. 자바에서는 함수라고해서 모두 부수 효과가 없는 것은 아닙니다.
https://docs.oracle.com/javase/8/docs/api/java/util/function/Consumer.html
Represents an operation that accepts a single input argument and returns no result. Unlike most other functional interfaces, Consumer is expected to operate via side-effects.
앗 추가로 한 가지만 더 질문드리겠습니다.
그럼 아래와 같은 코드의 경우 익명 클래스를 생성하는 것이 아닌건가요?
(아래의 코드가 람다식을 통해 '해당 타입의 객체'를 생성하는 것임은 이해했습니다!)
RunSomething runSomething = () -> System.out.println("익명 클래스");
자료 확인해보겠습니다. 답변 감사합니다!