본문 바로가기

Java

Java의 함수형 인터페이스

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