람다식

GOYENA·2025년 3월 27일

기존 방식

메서드를 정의하려면, 클래스 내에 정의해야 함.

람다식

메서드의 이름 생략
반환형은 함수형 인터페이스에 정의된 대로 자동으로 유추되어 적을 필요 없음

예시 )

기존 방식

int add(int a, int b) { 
return a+ b;
}

람다식

//메서드의 이름 생략, 반환형태 생략
(a, b) -> {   
return a + b;
} 

//중괄호와 return은 단일 표현식일 때 생략 가능
(a, b) -> a + b;

람다식 사용

함수형 인터페이스 필요

함수형 인터페이스를 익명 클래스로 구현
익명구현 객체를 간단히 표현한 것이 람다식

예시 )

함수형 인터페이스

@FunctionalInterface // 함수형 인터페이스임을 명시
Interface myFunction{ 
 int apply(int a, int b)
}

익명 함수

MyFunction sum = new myFunction(int a , int b) {
 @Override
 public int apply(int a, int b){
 return a+b;
 }
}

람다식

MyFunction sum = (a, b) -> a + b;
//(a, b)  - apply함수의 매개변수
//a + b   - apply함수의 구현내용
*익명 구현 객체
 클래스 이름 없이 인터페이스나 추상 클래스를 바로 구현한 객체
 클래스 정의 없이 즉석에서 생성
 중괄호 안에는 인터페이스의 추상 메서드를 구현하는 내용 정의
profile
헤헷

0개의 댓글