728x90
- 함수형 인터페이스
- 1개의 추상 메서드를 갖는 인터페이스
- 자바 8 버전 이후에는 Default 메서드 사용 가능
- 구현된 함수형 인터페이스는 @FunctionalInterface 를 표시하여 검증할 수 있다.
- 맞지 않는 경우 에러가 발생(필수로 명시하지 않아도 됨 => 의도 전달 목적 검증 목적)
- https://jeong0427.tistory.com/manage/posts/
- Single Abstract Method(SAM) 이라고도 불림.
- 아래는 간단한 함수형 인터페이스를 이용한 람다문법.
@FunctionalInterface
interface Worker {
void work();
}
public class FITest {
static void execute(Worker worker) {
worker.work();
}
public static void main(String[] args) {
//익명 클래스
execute(new Worker() {
@Override
public void work() {
System.out.println("Hello World");
}
});
//Lambda
execute(() -> System.out.println("Hello Lambda World"));
}
}
//함수형 인터페이스다.
public interface Adder{
int add(int a, int b);
}
//SmartAdder 은 두 추상 메서드(Adder 상속 포함)를 포함하므로 함수형 인터페이스가 아님
public interface SmartAdder extends Adder {
int add(double a, double b);
}
//추상 메서드가 없으므로 함수형 인터페이스가 아님
public interface Nothing {}
728x90
'Language > 자바' 카테고리의 다른 글
자바 @FunctionalInterface 는 무엇인가? (0) | 2023.01.29 |
---|---|
자바 시그니처? (0) | 2023.01.29 |
자바 프레디케이트란?예제코드와 함께..간단히 알아보자. (0) | 2023.01.29 |
자바 cpu 개수 구하기 (0) | 2023.01.28 |
StringTokenizer, split 차이점[공유링크] (0) | 2023.01.23 |
댓글