JAVA

Java 람다식, 람다함수

서묘_ 2022. 1. 6. 17:10

<람다식, 람다 함수>

Java에서 함수형 프로그래밍을 구현하는 방식으로 자바8부터 지원한다.

lambda : interface 구현 객체 생성

- interface로부터 물려받은 추상 메서드를 오버라이딩

- 익명 함수

인터페이스타입 변수 = (매개변수) -> {수행문}

함수의 이름과 반환형을 없애고 -> 사용

() -> {} // 기본형
(int i) -> {i + 1}
i -> i + 1 //매개변수가 하나면 자료형과 () 생략 가능, 수행문이 한 문장이면 {} 생략 가능
(int i, int n) -> i + n
(i, n) -> i + n //매개변수 타입이 같으면 타입 생략 가능
(int i, String s) -> i + s //타입이 다르면 생략 불가
i -> {return i + 1;} //수행문이 return문이면 {}생략 불가
i -> i + 1 //단, 수행문이 리턴문 하나라면 {}, return 둘 다 생략 가능

- 추상 메서드가 단 하나 있는 인터페이스(@FunctionalInterface)만 람다식으로 사용 가능

@FunctionalInterface
public interface Math {
    public int Calc(int a, int b);
}
public static void main(String[] args){
   Math sum = (a, b) -> a + b;
}