본문 바로가기
Java(17+) 문법/Java 기본

[Java] 람다표현식

by cogito21_java 2025. 1. 22.
반응형

람다표현식

람다표현식

- 람다 표현식(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