반응형
람다표현식
람다표현식
- 람다 표현식(lambda expression): Java8부터 도입된 함수형 프로그래밍 개념. 익명 함수를 작성하기 위한 한 줄짜리 표현식
- 익명 함수: 메서드와 같이 동작(기능)을 나타내지만, 메서드와 달리 클래스에 종속되지 않는 함수. 이름 없이 사용 가능
- 람다 표현식은 인터페이스에 선언한 추상 메서드의 매개변수 개수에 따라 달라짐
- 람다 표현식은 컴파일러가 알아서 타입을 추론하므로 변수의 타입을 명시적으로 정하지 않아도 됨. 인터페이스에 선언한 추상 메서드의 매개 변수 개수에 따라 모양이 달라짐
- 람다 표현식은 추상 메서드가 한 개만 있는 함수형 인터페이스에서만 사용 가능. 추상 메서드의 매개변수 개수와 동일하게 맞춰야함
- 람다 표현식을 이용하면 인터페이스의 구현체를 짧은 표현식으로 구현 가능하지만 인터페이스 구현체를 완전히 대체할 수 없음
+) 함수형 인터페이스(functional interface): 람다 표현식과 함께 사용하기 위해 Java에서 도입한 인터페이스. 한개의 추상 메서드만 가짐
+) 함수형 인터페이스로 사용하기로 한 인터페이스에 @FunctionalInterface 어노테이션을 붙여줄 수 있음
더보기
람다 표현식 선언
(param1, param2, ...) -> expression
함수형 인터페이스
public interface InterfaceName {
type method();
}
public class Main {
public static void main(String[] args) {
type varName = val1;
InterfaceName interfaceName = () -> { return val2 + varName;}; // 인터페이스의 구현체. 인스턴스화
interfaceName.method();
}
}
반응형
'Java(17+) 문법 > Java 기본' 카테고리의 다른 글
[Java] 예외처리 (0) | 2025.01.22 |
---|---|
[Java] 제네릭/Enum (0) | 2025.01.22 |
[Java] 클래스 - 생성자/상속/추상클래스 (0) | 2025.01.21 |
[Java] 클래스 - 메서드 (0) | 2025.01.21 |
[Java] 제어문 (0) | 2025.01.21 |