You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
[CHAPTER 3] - 람다 표현식
Before
문제점
해결책
람다(Lambda) 란?
람다 표현식
특징
익명
: 일반적인 메서드와 달리 이름이 없음 -> 익명함수
: 람다는 메서드처럼 특정 클래스에 종속적이지 않음 -> 함수전달
: 람다 표현식을 메서드 인수로 전달하고나 변수로 저장할 수 있음간결성
: 익명 클래스처럼 자질구레한 코드 구현할 필요 없음람다의 간결성 예
람다 표현식
파라미터 리스트
: Comparator의 compare 메서드 파라미터 (Apple 2개)화살표
: 화살표는 람다의 파라미터 리스트와 바디 구분람다 바디
: 두 사과의 무게를 비교 (람다의 반환값에 해당하는 표현식)잘못된 람다 표현식의 예
"Corock";을 뭐 어쩌라고?
가 되는거임람다 표현식을 어디에 (Where) 사용?
Predicate<T>
를 기대하는filter
메서드의 두 번째 인수로 람다 표현식을 전달함수형 인터페이스
Predicate<T>
인터페이스로 필터 메서드를 파라미터화 한 것임Predicate<T>
가 함수형 인터페이스 중 하나함수형 인터페이스로 할 수 있는 것
함수 디스크립터 (function descriptor)
추상 메서드 시그니처
가 곧람다 표현식의 시그니처
함수 디스크립터
라고 함람다의 활용 : 실행 어라운드 패턴 (Execute Around Pattern)
위 코드의 문제점
동작 파라미터화!!!
processFile의 동작을 파라미터화 !!
함수형 인터페이스를 이용해서 동작 전달
동작 실행!
람다 전달
람다를 이용해 다양한 동작을 processFile 메서드로 전달 가능
함수형 인터페이스 (Functional Interface)
함수 디스크립터
Comparable
,Runnable
,Callable
등 다양한 함수형 인터페이스 포함java.utml.function
패키지로 여러가지 새로운 함수형 인터페이스 제공Predicate
java.util.function.Predicate<T>
인터페이스는test
라는 추상메서드를 정의test
는 제네릭 형식 T 객체를 인수로 받아 boolean을 반환Consumer
java.util.function.Consumer<T>
인터페이스는 제네릭 형식 T 객체를 받아 void를 반환하는accept
추상메서드 정의Function
java.util.function.Function<T, R>
인터페이스는 제네릭 형식 T를 인수로 받아서 제네릭 형식 R 객체를 반환하는 추상 메서드apply
를 정의기본형 특화
박싱 ,언박싱, 오토박싱의 문제점
해결책
DoublePredicate
,IntConsumer
,LongBinaryOperator
,IntFunction
과 같이 형식명이 붙음자바 8에 추가된 함수형 인터페이스 (대표적 함수형 인터페이스, 함수 디스크립터)
형식 검사, 형식 추론, 제약
형식(type) 검사
같은 람다, 다른 함수형 인터페이스
Beta Was this translation helpful? Give feedback.
All reactions