JAVA8 의 람다 표현식
메소드로 전달할 수 있는 익명함수를 단순화 한 것이라고 보면 된다.
익명함수의 성질을 동일하게 가지지만 표현이 훨씬 더 간단하며, 메소드 파라미터로 전달하거나 변수로 저장할 수 있다.
다시 설명하면, 함수형 인터페이스의 추상 메소드의 구현체를 간단하게 표현하는 것이라고 생각하면 된다.
함수형 인터페이스
정확히 하나의 추상메소드를 지정하는 인터페이스이다.
JAVA 8로 넘어 오면서 @FunctionalInterface 애노테이션이 추가되었는데, 이 함수형 인터페이스를 지칭할 때 사용한다.
함수형 인터페이스가 아닌 ( = 추상메소드가 2개 이상인) 인터페이스 사용하면 컴파일 에러가 발생한다.
단, default 메소드는 제외한다.
1 2 3 4 |
| cs |
1 2 3 4 5 6 7 8 |
| cs |
단, 다음과 같은 케이스는 컴파일에러 발생.
1 2 3 4 5 6 7 8 |
| cs |
람다 표현식 구성
파라미터 + 화살표 + 바디 (Expression, Statements.. 등)
(String s) -> s.isEmpty();
람다 표현식은 함수형 인터페이스의 추상 메소드와 동일한 메소드 시그니쳐를 가진다.
람다 표현식 사용 예
1 2 3 4 5 6 7 8 9 10 |
| cs |
참고 : Java 8 In Action
'Development > Java' 카테고리의 다른 글
Java Wrapper Class 의 캐싱 (0) | 2017.07.18 |
---|---|
디스패치 (Dispatch) (1) | 2017.02.22 |
익명 클래스 → 람다 표현식 변환 시 주의할 점. (0) | 2017.01.24 |
자바8 util 패키지에서, 람다 표현식 연습해보기 (0) | 2017.01.09 |
람다 표현식에서 참조하는 지역 변수가 꼭 final이어야 하는 이유 (0) | 2017.01.08 |