[Java] Java8
Java 8
함수형 인터페이스와 람다 표현식
함수형 인터페이스
- 추상 메서드를 하나만 가지고 있는 인터페이스
- SAM(Single Abstract Method) 인터페이스
- @FunctionalInterface 애노테이션을 가지고 있는 인터페이스
자바에서 기본으로 제공해주는 함수형 인터페이스
- Function
- 파라미터 1개, 리턴값
- 함수를 조합할 수 있는 메서드가 있음
- andThen()
- cmpose
- BiFunctoion
- 파라미터 2개, 리턴값
- Consumer
- 파라미터 받아서 리턴은 안하고 사용만함
- Supplier
- 파라미터 X, 리턴
- Predication
- 파라미터 O, boolean 리턴
- UnaryOperator
- 입력값과 리턴값의 타입이 동일할 때 사용
- BinaryOperator
- 입력값2개, 리턴값의 타입이 동일할 때 사용
람다 표현식
- 함수형 인터페이스의 인스턴스를 만드는 방법으로 쓸 수 있다
- 코드를 줄일 수 있다
- 메서드 매개변수, 리턴 타입, 변수로 만들어 사용 가능
- 람다의 스코프 : 람다를 감싸고 있는 메서드
- 로컬 클래스, 익명클래스는 개별 스코프를 가짐
- 외부의 변수 중 final 변수 또는 실질적 final(Effective final) 변수만 람다 내에서 사용할 수 있다