반응형
자바에서 람다 표현식은 익명 함수를 간결하게 표현할 수 있는 기능입니다. 람다 표현식을 사용하면 코드가 더 직관적이고 간결해지며, 특히 함수형 인터페이스를 사용할 때 유용합니다.
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
'[개발관련] > JAVA' 카테고리의 다른 글
[JAVA] ForkJoinPool 정리 (0) | 2025.02.03 |
---|---|
CountDownLatch와 쓰레드 협업용 동기화 도구 (4) | 2025.01.18 |
[이펙티브 자바] 아이템 12. toString을 항상 재정의하라 (0) | 2023.10.20 |
[이펙티브 자바] 아이템 11. equals를 재정의하려거든 hashCode도 재정의하라 (0) | 2023.10.18 |
[이펙티브 자바] 아이템 09. try-finally보다는 try-with-resources를 사용하라. (0) | 2023.10.17 |