프로그래밍/JAVA

[Java] 람다 표현식(lambda expression)

하와이블루 2022. 8. 15. 13:51
728x90

 

 

람다 표현식은 Java SE 8부터 제공되어, 메소드를 하나의 식으로 표현한 것으로 메소드의 이름은 생략하여 표기하는 익명 메소드 중 하나이다.

람다 표현식을 사용하면, 불필요한 코드를 줄일 수 있고 코드의 가독성을 높여주는 장점이 있다.

 

 

람다 표현식을 작성하기 위해서는 ( -> ) 화살표 기호를 사용한다.

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

 

 

람다 표현식을 작성할 때 유의 사항을 알아보면

1. 매개변수의 타입을 추론할 수 있는 경우에는 타입을 생략이 가능하다.

2. 매개변수가 하나인 경우에는 괄호를 생략할 수 있다.

3. 함수의 몸체가 하나의 명령문만으로 이루어진 경우에는 중괄호를 생략할 수 있다.

4. 함수의 몸체가 하나의 return 문으로만 이루어진 경우에는 중괄호를 생략할 수 없다.

5.  return 문 대신 표현식을 사용할 수 있으며, 이때 반환값은 표현식의 결괏값이 된다.

 

 

// 기본 메소드
public class Calc{
    public int func1(x,y){
        int result = x < y ? x : y;
        return result;
    }
}

아래 코드는 위 코드를 람다 표현식으로 변환한 모습이다.

// 람다표현식
Calc calc = (x, y) -> x < y ? x : y;

 

 

함수형 인터페이스

함수형 인터페이스는 람다 표현식을 하나의 변수에 대입할 경우 사용하는 참조변수의 타입을 의미하며, @FunctionalInterface 어노테이션을 붙이므로써 함수형 인터페이스인 것을 인식 시킨다. 함수형 인터페이스는 단 하나의 추상 메소드를 포함한 형태로 두 개 이상 메소드가 선언될 경우 오류를 발생시킨다.

 

public class Lambda1 {
    public static void main(String[] args) {
        Calc minNum = (x, y) -> x < y ? x : y;
        System.out.println(minNum.min(5,3));
    }
}

public interface Calc {
    public int min(int x,int y);
}

/* 실행결과
3
*/

 

 

[참조] : http://tcpschool.com/java/java_lambda_concept

 

 

 

 

 

728x90