Home [Java-Effective] Lambda
Post
Cancel

[Java-Effective] Lambda

Lambda

  • 함수형 프로그래밍 기법을 지원하는 자바의 문법요소

  • 메서드를 하나의 식으로 표현

  • 코드를 간결하면서도 명확하게 표현할 수 있다는 장점

  • 반환타입과 이름 생략 가능, 익명함수라고도 부름

  • 실행문이 하나만 존재할 때 중괄호 생략 가능

  • 매개변수 타입 유추 가능할 때 매개변수 타입 생략 가능

  • 람다식 = 객체

  • 이름도 없기에 익명 클래스라 할 수 있음

  • 익명클래스 : 객체의 선언과 생성을 동시에 해서 하나의 객체를 생성하고, 한번만 사용되는 일회용 클래스

  • 람다식은 객체이기 때문에 인터페이스에 정의된 추상메서드 구현 가능

  • 단 함수형 인터페이스는 하나의 추상메서드만 선언.

    • 람다식과 인터페이스가 1 : 1로 매칭되기 때문

    🔗함수형 인터페이스

    🔗함수형 인터페이스2

  • 정적메서드를 참조할 때 클래스 이름 뒤에 :: 을 붙이고 정적메서드이름 기술

  • 인스턴스 메서드를 참조할 때 객체를 먼저 생성 후, 참조변수뒤에 :: 붙이고 인스턴스 메서드 이름 기술

  • 생성자 참조는 클래스 이름 뒤에 :: 붙인 후 new 연산자 기술

    • 생성자가 오버로딩되어 여러개가 있는 경우, 함수형 인터페이스의 추상메서드와 동일한 매개변수 타입과 개수를 가지고 있는 생성자를 찾아 실행.
This post is licensed under CC BY 4.0 by the author.