람다식과 함수형 프로그래밍
답변 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.
0
앗 추가로 한 가지만 더 질문드리겠습니다.
그럼 아래와 같은 코드의 경우 익명 클래스를 생성하는 것이 아닌건가요?
(아래의 코드가 람다식을 통해 '해당 타입의 객체'를 생성하는 것임은 이해했습니다!)
RunSomething runSomething = () -> System.out.println("익명 클래스");
CompletableFuture의 get 실행에 대해 궁금한 점이 있습니다
0
234
2
기본 인터페이스의 기본 제공 메서드 관련 질문 (왜 이걸 사용하는지)
0
521
2
static 과 metaspace 관련 질문있습니다.
0
710
0
Map의 가장 큰 특징이 key는 null이 아니다
0
2384
2
Optional 질문드립니다.
0
473
0
인텔리제이 콘솔창
0
582
0
Supplier를 쓰는 이유
0
1362
1
allOf()에서 컬렉션으로 반환하는 것을 설명할 때 코드
0
710
1
[참고] LTS주기
0
473
1
orElseThrow()
1
1089
2
findFirst함수
0
360
1
메서드 레퍼런스
1
478
1
primitive type 질문
0
304
1
FunctionalInterface 상속 관계 질문
0
293
1
함수형 인터페이스를 왜 사용하나요?
1
500
1
while문 세미콜론
0
437
1
flatMap Optional과 Stream에서의 차이점을 제가 잘 이해했는지 헷갈립니다!
0
411
1
람다식과 익명 클래스
0
323
1
steam api 예제 git 주소
3
786
1
thread.sleep질문
0
389
2
.orElse 매개변수 질문
0
265
1
isPresent( ) 와 null 질문
0
337
1
예제 코드 질문
2
291
1
코드 질문있습니다.
0
238
1





