Open sure-why-not opened 2 years ago
Supplier
Supplier<Item> supplier= ()-> new Item(10, "Hello");
Item result = supplier.get();
UnaryOperator
UnaryOperator<Integer> unaryOperator1 = n -> n * n;
Integer result = unaryOperator1.apply(10);
UnaryOperator
**BinaryOperator**
- Type T의 인자 두개를 받고, 동일한 Type T 객체를 리턴하는 함수형 인터페이스
BinaryOperator
**BiPredicate**
- 2개의 인자를 받고 boolean을 리턴하는 함수형 인터페이스이다.
BiPredicate<Integer, Integer> biPredicate = (n1, n2) -> n1 > n2; boolean result = biPredicate.test(10, 100);
**BiConsumer**
- 2개의 인자를 받고 리턴 값이 없는 함수형 인터페이스
BiConsumer<Integer, Integer> biConsumer = (n1, n2) -> System.out.println(n1 * n2); biConsumer.accept(10, 20);
**BiFunction**
- 2개의 인자(Type T, U)를 받고 1개의 객체(Type R)를 리턴하는 함수형 인터페이스
BiFunction<String, String, String> func1 = (s1, s2) -> { String s3 = s1 + s2; return s3; }; String result = func1.apply("Hello", "World");
문제
책에서는 Predicate, Consumer, Function 함수형 인터페이스에 대해서만 설명해주었다. 그 외에 자바 8에 추가된 함수형 인터페이스에 대해 짚고 넘어가자.
선정 배경
최근 미션에서 BiPredicate 를 사용한 예시를 몇번 보았는데, 코드가 훨씬 간결해지고 가독성이 높아지는 것을 볼 수 있었다. 직접 함수형 인터페이스를 구현해서 잘 사용하는 것도 중요하지만, 자바에서 만든 검증된 표준 함수형 인터페이스를 잘 활용할 줄 아는 것도 중요하다고 생각한다.
관련 챕터