함수형 프로그래밍 - 함수를 간결하게 표현하는것
람다식은 익명 함수다(anonymous function) - 메서드의 구현을 간결하게 표현
원래 인터페이스안에는 추상메서드가 여러개 들어갈 수 있는데. 함수형 인터페이스는 단 하나의 추상메서드만을 가질수 있다.
이런 함수형 인터페이스를 이용하면 람다 표현식을 사용할 수 있다.
함수형 인터페이스라는걸 명시적으로 선언을 할려면 인터페이스 위에 @FuntionalInterface라고 선언해주면된다.
이걸 단일 추상 메서드 인터페이스(SAM)이라고 하는데 인터페이스여서 클래스로 구현을 해야되는데
람다식을 사용하여 구현을 할 수 있다.
클래스에서 @Override를 이용해서 추상메서드를 가져와서 구현한다.
인터페이스는 객체생성처럼 =new Class(); 이렇게 구현할 수 없지만.
Class a = new Class({
@Override
public int add(int x, int y){
return x + y;
}
});
int result = a.add(1, 2);
이런식으로 사용할 수 있다.
# 메서드참조
정의됬던 메서드를 참조하여 람다표현식을 간결하게 만든다.
4가지 방볍
1. 정적 메서드 참조: 클래스명::메서드명
2. 인스턴스 메서드 참조: 객체참조: 메서드명
3. 특정 객체의 인스턴스 메서드 참조: 클래스명::메서드명
4. 생성자 참조: 클래스명::new
#람다식
함수형 프로그래밍에서 함수를 간결하게 표시하기위해 사용
@FunctionalInterface
interface DoMath{
int operation(int x, int y);
}
public class LambdaExample{
public static void main(String[] args){
// (int x, int y)->{return x + y;} 람다식을 이용하여 더하기 구현
DoMath add= = (x, y) -> x + y;
DoMath add = (int x, int y)->{ return x + y};
int result=add.add(10,20);
System.out.println("10+20=" + result);
}
}
익명함수의 형태를 가지고 있고 메서드의 구현을 간결하게 표현
람다는 메서드 내에서 사용가능하며. 메서드의 인자(parameter)로 줄수있어 유연성을 높힐 수 있다.
'Back End > Java' 카테고리의 다른 글
기타 API들 (0) | 2023.07.26 |
---|---|
스트림 API(stream) (0) | 2023.07.24 |
제네릭(Generic) (0) | 2023.07.16 |
컬렉션 프레임워크 API(Collection Framework API) (0) | 2023.07.15 |
Wrapper Class (0) | 2023.07.15 |