단 하나의 추상 메서드만 선언된 인터페이스
interface MyFunction {
public abstrack int max(int a, int b);
// 인터페이스의 모든 메서드는 예외없이 public 이면서 abstract 이기 때문에 생략 가능
}
람다식 참조를 위해 함수형 인터페이스를 사용할 수 있다.
MyFunction f = new MyFunction() {
public int max(int a, int b){
return a > b? a:b;
}
};
int value = f.max(3,5);
또는
@FunctionalInterface // 함수형 인터페이스는 단 하나의 추상 메서드만 가져야 함
MyFunction f= (a, b) -> a>b ? a:b; // 람다식(익명 객체)을 다루기 위한 참조변수의 타입은 함수형 인터페이스로 한다.
int value = f.max(3,5)
void aMethod(MyFunctin f) {
f.myMethod(); // 람다식 호출, 즉 MyFunction에 정의된 메서드 호출
}
MyFunction f = ()->System.out.println("hello world");
aMethod(f);