3장. 람다표현식

3장. 람다표현식

람다 표현식 #

람다? #

람다 표현식(이하 람다)는 메서드로 전달할 수 있는 익명함수를 단순화 한 것이다.

람다 표현식(lambda expression)이란 간단히 말해 메소드를 하나의 식으로 표현한 것입니다.

람다는 {parameters} {->} {body} 의 형태로 작성된다.

(Apple a1, Apple a2) -> a1.getWeight().compareTo(a2.getWeight());

자바 8에서 지원하는 5 가지 람다 표현식의 예제 #

1. (String s) -> s.length()

2. (Apple a) -> a.getWeight() > 150

3. (int x, int y) -> {
    System.out.println(x, y);
}

4. () -> 42

5. (Apple a1, Apple a2) -> a1.getWeight().compareTo(a2.getWeight())

표현식이 한 개인데, return 문을 사용해야 한다면 블록{}으로 감싸야한다.

(String s) -> return s + i; // X

(String s) -> { return s + i; } // O

함수형 인터페이스 #

함수형 인터페이스는 오직 하나의 추상메서드만을 갖는 인터페이스 이다.

Predicate, Compator, Runnable, Function 등이 있다.

함수형 인터페이스를 활용한다는 것은, 람다 표현식을 적극 활용할 수 있다는 것이다. (다르게 말하면 람다의 표현식이 함수형 인터페이스의 인스턴스(함수형 인터페이스를 구현한 인스턴스)가 될 수 있다는 것이다.)



람다 표현식이란?