본문 바로가기
Java/Java 17 문법

[Java] Java - 람다표현식

by cogito30 2025. 2. 16.

람다표현식

람다표현식

- 람다 표현식(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 > Java 17 문법' 카테고리의 다른 글

[Java] Java - 제네릭/Enum  (0) 2025.02.16
[Java] Java - 인터페이스  (0) 2025.02.16
[Java] Java - 클래스(생성자/상속/추상클래스)  (0) 2025.02.16
[Java] Java - 메서드  (0) 2025.02.16
[Java] Java - 제어문  (0) 2025.02.16