[Java] 람다 표현식

이다혜·2023년 11월 7일
0

Java

목록 보기
16/23
post-thumbnail

람다 표현식(Lambda expression)이란?

간단히 말해 메서드를 하나의 식으로 표현한 것이다.

메서드

int min(int x, int y) {
	return x < y ? x : y;
}

람다 표현식

(x, y) -> x < y ? x : y;

위의 예제처럼 메서드를 람다 표현식으로 표현하면, 클래스를 작성하고 객체를 생성하지 않아도 메서드를 사용할 수 있다.

장점

  1. 기존의 불필요한 코드를 줄여준다.
  2. 작성된 코드의 가독성을 높여준다.

람다 표현식 작성

문법

(매개변수 목록) -> { 함수몸체 }

유의 사항

  1. 매개변수의 타입을 추론할 수 있으면 타입 생략 가능
  2. 매개변수가 하나인 경우 괄호 () 생략 가능
  3. 함수의 몸체가 하나의 명령문만으로 이루어진 경우 중괄호 {} 생략 가능
  4. 함수의 몸체가 하나의 return 문 만으로 이루어진 경우 중괄호 {} 생략 불가능

메서드 참조(method reference)

람다 표현식이 단 하나의 메서드만을 호출하는 경우에 해당 람다 표현식에서 불필요한 매개변수를 제거하고 사용할 수 있도록 해준다.

문법

메서드 참조를 사용하면 불필요한 매개변수를 제거하고 :: 기호를 사용한다.

클래스 이름::메서드이름
or
참조변수이름::메서드이름

예제

두개의 값을 전달 받아 제곱 연산을 수행하는 Math 클래스의 pow() 메서드를 호출하는 람다식을 메서드 참조를 사용하여 간단히 표현할 수 있다.

(a, b) -> Math.pow(a, b);

=> 

Math::pow;

단순히 객체를 생성하고 반환하는 람다 표현식을 생성자 참조를 사용하여 간단히 표현할 수도 있다.

(a) -> { return new Object(a); }

=>

Object::new;

0개의 댓글