728x90
import java.util.function.*;
public class Foo {
public static void main(String[] args) {
Function<Integer, Integer> plus10 = (i) -> i + 10;
// UnaryOperator<Integer> plus11 = (i) -> i + 11;
Function<Integer, Integer> multiply2 = (i) -> i * 2;
// 고차함수 생성 후 실행
Function<Integer, Integer> multiply2AndPlus10 = plus10.compose(multiply2);
System.out.println(multiply2AndPlus10.apply(10));
// 고차함수 앞에서 부터 실행
System.out.println(plus10.andThen(multiply2).apply(10));
// Consumer
Consumer<Integer> printT = System.out::println;
printT.accept(22);
// Supplier
Supplier<Integer> get10 = () -> 10;
System.out.println(get10.get());
// Predicate
Predicate<String> startWithLee = s -> s.startsWith("Lee");
boolean bool = startWithLee.test("A");
System.out.println(bool);
}
}
- Java에서는 여러 함수형 인터페이스를 제공하고 이런 인터페이스를 통해 고차함수를 만들 수 있음
- https://docs.oracle.com/javase/8/docs/api/java/util/function/package-summary.html 에러 여러 인터페이스를 찾아서 다양한 예시를 만들 수 있음
300x250
'Java' 카테고리의 다른 글
메소드 레퍼런스 (0) | 2023.07.09 |
---|---|
람다 표현식 (0) | 2023.07.09 |
함수형 인터페이스와 람다 표현식 (0) | 2023.07.06 |
비즈니스 요구사항 설계 (0) | 2022.07.20 |
SOLID (0) | 2022.07.19 |