# 자바의 정석 유튜브 영상을 보면서 정리하며 학습하였습니다.
함수형 인터페이스 - 단 하나의 추상 메서드만 선언된 인터페이스
@FunctionalInterface // 함수형 인터페이스는 단 하나의 추상 메서드만 가져야 함.
public interface MyFunction {
int max(int a, int b);
// public abstract는 생략 가능함.
// 인터페이스의 모든 메소드는 public 이면서 동시에 abstract이다.
}
익명클래스의 선언, 객체 생성을 동시에 함
MyFunction f = (a, b) -> a > b ?> a : b;
// MyFunction에 max()가 있음
int value = f.max(3,5); // 실제로는 람다식(익명 함수) 이 호출됨
▶ 함수형 인터페이스 타입의 참조변수로 람다식을 참조할 수 있음
단, 함수형 인터페이스의 메서드와 람다식의 매개변수 개수와 반환타입이 일치해야 함.
▶ 함수형 인터페이스 타입의 매개변수
void aMethod(MyFunction f) {
f.myMethod(); // MyFunction에 정의된 메서드 호출
}
MyFunction f = () -> System.out.println("myMethod()");
aMethod(f);
aMethod(() -> System.out.println("myMethod()"));
▶ 함수형 인터페이스 타입의 반환타입
MyFunction myMethod() {
MyFunction f = () -> {};
return f;
}
MyFunction myMethod() {
return () -> {};
}
'자바' 카테고리의 다른 글
인터페이스가 가지는 객체지향 특징 (0) | 2023.10.21 |
---|---|
객체 지향의 특징 4가지 (0) | 2023.10.20 |
자바의 변성 - 공변/무공변/반공변 (0) | 2022.03.23 |
Comparable (0) | 2022.02.28 |
클래스간의 관계 (0) | 2022.02.22 |