Back End/Java

람다식, 함수형 인터페이스

DevHam94 2023. 7. 20. 01:51

함수형 프로그래밍 - 함수를 간결하게 표현하는것

람다식은 익명 함수다(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