반응형

자바에서 람다 표현식은 익명 함수를 간결하게 표현할 수 있는 기능입니다. 람다 표현식을 사용하면 코드가 더 직관적이고 간결해지며, 특히 함수형 인터페이스를 사용할 때 유용합니다.

1. 람다 표현식 기본 구조

(매개변수들) -> { 실행할 코드 }
    
  • 매개변수들: 람다식에 전달되는 입력 값들.
  • 실행할 코드: 람다식이 실행할 코드 블록.

2. 예시

1) 매개변수가 없는 람다

() -> System.out.println("Hello, World!");
    

이 예시는 매개변수가 없고, "Hello, World!"를 출력하는 람다식입니다.

2) 매개변수가 하나인 람다

x -> x * x
    

매개변수 x를 받아서 x의 제곱을 반환하는 람다식입니다.

3) 매개변수가 여러 개인 람다

(x, y) -> x + y
    

매개변수 x와 y를 받아서 두 값을 더하는 람다식입니다.

3. 람다 표현식 사용 예시

람다 표현식은 주로 함수형 인터페이스에서 사용됩니다. 예를 들어, Runnable 인터페이스를 사용한 예시는 다음과 같습니다:

Runnable task = () -> System.out.println("Hello from a thread!");
task.run();
    

4. 람다 표현식의 장점

  • 간결한 코드: 익명 클래스를 사용하는 것보다 코드가 훨씬 간결해집니다.
  • 가독성 향상: 불필요한 boilerplate 코드가 줄어들어 가독성이 향상됩니다.
  • 함수형 프로그래밍: 자바에서 함수형 프로그래밍 스타일을 사용할 수 있습니다.

5. 함수형 인터페이스

람다 표현식은 함수형 인터페이스와 함께 사용됩니다. 함수형 인터페이스는 하나의 추상 메서드만을 가지는 인터페이스를 말합니다. 예시로 Runnable, Callable, Comparator 등이 있습니다.

@FunctionalInterface
public interface MyFunction {
    void apply();
}
    

위 예시에서 MyFunction 인터페이스는 하나의 추상 메서드를 가지고 있으며, 람다로 구현할 수 있습니다.

MyFunction myFunc = () -> System.out.println("Hello from MyFunction!");
myFunc.apply();
    

6. 람다 표현식의 제한 사항

  • final 또는 effectively final 변수만 사용 가능: 람다식 내에서 참조되는 변수는 반드시 final이거나 사실상 final이어야 합니다.
  • 상태 변경이 어려움: 람다식 내부에서 외부 변수를 변경할 수 없으므로 상태 관리에 제한이 있을 수 있습니다.

7. 결론

람다 표현식은 자바에서 함수형 프로그래밍을 보다 쉽게 구현할 수 있게 해 주는 강력한 도구입니다. 간결한 코드 작성, 가독성 향상 및 함수형 프로그래밍 스타일을 지원하는 데 큰 장점이 있습니다.

728x90

+ Recent posts