Notice
Recent Posts
Recent Comments
Link
YTCW
java Lambda 본문
Java 람다 표현식(Lambda Expression)은 Java 8에서 도입된 기능으로,
함수형 프로그래밍의 개념을 Java에 도입한 방식입니다.
주로 간결하게 코드를 작성하고,
익명 함수(anonymous function)를 생성하기 위해 사용됩니다.
람다 표현식은 불필요한 보일러플레이트(코드의 반복)를 줄이고 가독성을 높이는 데 매우 유용합니다.
매개변수: 람다 표현식이 입력받는 값입니다. 메서드의 매개변수와 유사합니다.
화살표(->): 람다 표현식에서 입력을 처리하는 본체(코드 블록)와 결과를 나누는 구분자입니다.
코드 블록: 메서드처럼 실행할 코드입니다. 한 줄일 경우 중괄호를 생략할 수 있습니다.
화살표(->): 람다 표현식에서 입력을 처리하는 본체(코드 블록)와 결과를 나누는 구분자입니다.
코드 블록: 메서드처럼 실행할 코드입니다. 한 줄일 경우 중괄호를 생략할 수 있습니다.
(int a, int b) -> { return a + b; }
(a, b) -> { return a + b; }
단일 명령문: 코드 블록이 하나의 명령문만 포함할 경우,
중괄호와 return 키워드를 생략할 수 있습니다.
(a, b) -> a + b
람다 표현식은 주로 함수형 인터페이스와 함께 사용됩니다.
함수형 인터페이스는 단 하나의 추상 메서드만을 가지는 인터페이스입니다.
대표적으로 java.util.function 패키지에 포함된 인터페이스들이 있습니다.
@FunctionalInterface
interface MyFunction {
int apply(int a, int b);
}
public class LambdaExample {
public static void main(String[] args) {
MyFunction sum = (a, b) -> a + b;
System.out.println(sum.apply(5, 3)); // 출력: 8
}
}
익명 클래스와의 비교
람다 표현식은 익명 클래스를 대신할 수 있지만,
둘 사이에는 몇 가지 차이점이 있습니다.
타입:
익명 클래스는 클래스 타입이고,
람다는 함수형 인터페이스의 구현체로 취급됩니다.
변수 캡처:
람다 표현식은 외부 변수에 접근할 때, 그 변수가 사실상 final이어야 합니다.
익명 클래스는 그렇지 않아도 됩니다.
this 참조:
익명 클래스에서 this는 해당 익명 클래스를 가리키지만,
람다 표현식에서 this는 외부 클래스(컨텍스트)를 가리킵니다.
람다 표현식을 통해 코드를 더 간결하고 명확하게 작성할 수 있으며,
함수형 프로그래밍의 장점을 Java에서도 활용할 수 있습니다.
'java' 카테고리의 다른 글
servlet 과 jsp(javaServer Pages) 차이점 (1) | 2024.10.08 |
---|---|
java 내부 클래스 (0) | 2024.09.13 |
java singleton (0) | 2024.09.10 |
java lombok (0) | 2024.09.10 |
java MVC 패턴 (2) | 2024.09.10 |