[Java] 람다식

Local Gaji·2023년 9월 3일

이것이 자바다

목록 보기
17/18

🎈 람다식이란?

메서드를 간단한 식으로 표현한 것

(매개변수1, 매개변수2, ...) -> { 실행문 }

람다식을 통해 익명의 구현 객체가 만들어진다.

// 일반 익명 객체
new Object() {
  int plus(x, y) { 
    return x + y; 
  } 
}

// 람다식
(x, y) -> { x + y }
  • 반환값이 있는 경우 return; 를 생략할 수 있다.
  • 매개변수 타입이 추론 가능할 경우 매개변수 타입을 생략할 수 있다.
  • 매개변수가 한개고 타입을 생략했을 경우 괄호도 생략이 가능하다.
  • 실행문이 한줄이면 중괄호를 생략 가능하다

🎈 람다식을 변수에 대입하기

// 일반 익명객체 대입
Object obj = new Object() { ... }

// 람다식 대입
??? f = ( ... ) -> { ... }

람다식을 변수에 대입해서 사용해야 하는데, 람다식 함수는 이름이 없기 때문에 일반 익명 객체처럼 자기 자신의 타입을 지정할 수가 없다.


🎈 함수형 인터페이스

함수형 인터페이스는 단 하나의 추상 메서드를 가지는 인터페이스이다.

@FunctionalInterface   // 함수형 인터페이스에 붙임 (생략 가능)
public interface Functional { 
  // 추상 메서드 (1개)
  int plus(int x, int y);
}

함수형 인터페이스를 선언하고, 람다식의 타입을 이 함수형 인터페이스로 지정해준다.

// 람다식을 함.인 타입에 대입
Functional f = ( x, y ) -> { ... }

함수형 인터페이스의 추상 메서드와 매개변수 형식이 같아야 한다.


🎈 람다식 호출

함수형 인터페이스의 추상메서드의 이름으로 호출한다.

// 호출하기
int result = Functional.plus(1, 3);

0개의 댓글