JAVA/포스팅

자바 람다식 작성하기

짜집퍼박사(짜박) 2023. 11. 22. 00:50

람다식은 Java 8에서 도입된 함수형 프로그래밍을 지원하는 기능으로, 익명 함수를 간단하게 표현할 수 있습니다. 람다식을 작성하는 방법에 대해 자세히 알아보겠습니다.

 

람다식의 기본 문법

람다식의 기본적인 문법은 다음과 같습니다.

(parameters) -> expression
// 또는
(parameters) -> { statements; }

parameters: 메서드에 전달되는 매개변수를 나타냅니다.
->: 람다식 연산자로서, 매개변수와 표현식 또는 코드 블록을 연결합니다.
expression: 단일 표현식으로서, 람다식의 결과를 나타냅니다.
{ statements; }: 중괄호 안에 여러 문장을 포함하여 코드 블록을 나타냅니다.

 

예제

매개변수가 없는 경우

Runnable myRunnable = () -> System.out.println("Hello, Lambda!");

위의 예제에서 Runnable은 함수형 인터페이스로, run 메서드가 추상 메서드로 정의되어 있습니다. 이를 람다식으로 구현한 것입니다.

 

하나의 매개변수를 받는 경우

(x) -> x * x

이 예제에서는 정수 하나를 받아 제곱을 계산하는 람다식입니다. 매개변수의 자료형은 컴파일러가 유추할 수 있기 때문에 생략할 수 있습니다.

 

두 개 이상의 매개변수를 받는 경우

(x, y) -> x + y

여러 개의 매개변수가 있는 경우에는 괄호 안에 매개변수를 나열하면 됩니다.

 

함수형 인터페이스

람다식은 주로 함수형 인터페이스를 구현하는 데 사용됩니다. 함수형 인터페이스는 딱 하나의 추상 메서드를 갖는 인터페이스를 말합니다. 람다식은 이 추상 메서드를 구현하는 익명 객체를 생성합니다.

예를 들어, 다음은 Consumer라는 함수형 인터페이스를 구현하는 람다식의 예입니다.

Consumer<String> myConsumer = (str) -> System.out.println(str);

위의 코드에서 Consumer는 accept라는 하나의 추상 메서드를 가진 함수형 인터페이스입니다.

 

변수 캡처

람다식 내에서 외부의 변수를 참조할 때, 해당 변수는 final 또는 effectively final이어야 합니다. Java 8 이후에는 final 키워드를 명시하지 않아도, 해당 변수가 사실상 final인 경우에는 람다식에서 참조할 수 있습니다.

 

예외 처리

람다식 내에서 예외를 처리하려면 try-catch 블록을 사용하면 됩니다. 다음은 예외 처리가 포함된 람다식의 예제입니다.

MyFunctionalInterface myFunc = (a, b) -> {
    try {
        // 예외가 발생할 수 있는 코드
        return someOperation(a, b);
    } catch (SomeException e) {
        // 예외 처리 코드
        return defaultValue;
    }
};

 

메서드 레퍼런스

람다식이 특정 메서드만을 호출하는 경우, 메서드 레퍼런스를 사용하여 코드를 더 간결하게 표현할 수 있습니다. 예를 들어, 정적 메서드를 호출하는 경우,

MathOperation addition = (a, b) -> Calculator.add(a, b);
// 위 람다식은 아래 메서드 레퍼런스로 대체 가능합니다.
MathOperation addition = Calculator::add;

이처럼 람다식은 코드를 간결하고 가독성 있게 만들어주지만, 사용하는 상황에 따라 적절하게 선택해야 합니다.

 

With ChatGPT

'JAVA > 포스팅' 카테고리의 다른 글

자바 java.util.function패키지  (0) 2023.11.22
자바 함수형 인터페이스  (0) 2023.11.22
자바 람다식  (0) 2023.11.22
자바 쓰레드 fork 프레임웍  (0) 2023.11.22
자바 쓰레드 join 프레임웍  (0) 2023.11.22