728x90
반응형
1. 함수형 인터페이스(Functional Interface)
2. Consumer
3. Supplier
1. 함수형 인터페이스(Functional Interface)
- 람다식과 함께 자바 8 부터 지원(JDK 1.8)
- 개발자가 직접 정의하는 방식 (어제 배운 람다식)
- JDK에서도 많은 수의 함수형 인터페이스를 제공한다. (Consumer, Supplier, Function, Operator, Predicate ..등 )
[ 표준 API 함수형 인터페이스 ]
- 추상 메소드 1개 짜리 인터페이스
2. Consumer
[ 정의 ]
- 컨슈머(뜻: 소비자)
- 매개변수를 받아서 소비하는 일을 구현한다.
- acceptXXX() 메소드를 제공한다.
- 매개변수O, 반환값X
- Consumer<T>, BiConsumer<T, U>.. 등 많은데 우선 이 2가지만 머릿속에 꼭 기억해두자.
[ 예제 - Consumer, BiConsumer ]
// 1. Consumer
Consumer<String> c1 = str -> System.out.println("문자수: " + str.length());
c1.accept("홍길동");
Consumer<Integer> c2 = n -> {
for (int i=0; i<n; i++) {
System.out.println(i);
}
};
c2.accpet(10);
// 2. BiConsumer
BiConsumer<String, Integer> bc1 = (nmae, age) -> System.out.printf("이름: %s, 나이: %d\n", name , age);
b1.accpet("홍길동", 20);
BiConsumer<Integer, Integer> bc2 = (n1, n2) -> System.out.println(n1 > n2 ? n1 : n2);
b2.accpet(100, 200);
--> Consumer Output
문자수: 3
0
1
2
3
4
5
6
7
8
9
--> BiConsumer Output
이름: 홍길동, 나이: 20
200
3. Supplier
[ 정의 ]
- 서플라이어(뜻: 공급자)
- 반환값을 제공(공급)하는 역할을 한다.
- getXXX() 메소드를 제공한다.
- 매개변수X, 반환값O
- Supplier<T>
[ 예제 - Supplier ]
Supplier<String> s1 = () -> "홍길동";
System.out.println(s1.get());
Supplier<Integer> s2 = () -> {
Calendar c = Calendar.getInstance();
return c.get(Calendar.YEAR);
}
System.out.println(s2.get());
--> Output
홍길동
2021
MEMO>
# 현재 하고있는 함수형 인터페이스는 머릿속에 잘 정리해두면 나중에 자바스크립트에도 똑같이 쓰일 수 있으며, 나온지 7년 정도 된 기술이지만 현재 다시 뜨고있는 기술이므로, 나중에 취업을 위해서라도 잘 이해하도록 하자.
# 웹 프로젝트 마지막 주 시작!!
728x90
반응형
'교육 > Java' 카테고리의 다른 글
Java 개발자 수업 91일차 - 스트림(Stream) (0) | 2021.08.07 |
---|---|
Java 개발자 수업 90일차 - Function, Operation, Predicate, 함수 조합용 메소드 (0) | 2021.08.07 |
Java 개발자 수업 88일차 - 람다식 (Lambda Expression) (0) | 2021.07.31 |
JAVA 개발자 수업 31일차 - 정규 표현식(Regular Expression) (0) | 2021.05.11 |
JAVA 개발자 수업 30일차 - 정규 표현식(Regular Expression) (0) | 2021.05.10 |
댓글