Consumer/Supplier/Predicate/UnaryOperator는 Function의 특별한 경우 일 뿐이므로 이러한 인터페이스를 Function으로 어떻게 대체 할 수 있습니까?java8 - 소비자 또는 공급자를 대체 할 함수 인터페이스 사용
T -> 기능 -> R
T -> 소비자 -> 널
널 (null) -> 공급 -> T
T -> 술어 -> 부울
T - > UnaryOperator -> T
null & 부울은 T의 특수한 경우입니다. 따라서 Predicate와 UnaryOperator를 대체하는 함수를 사용하여 두 개의 사례를 작성합니다. 예를 들어
:
private static void replacePredicate() {
Function<String, Boolean> func = x -> x.startsWith("a");
Predicate<String> pre = x -> x.startsWith("a");
System.out.println(func.apply("ape"));
System.out.println(pre.test("ape"));
}
private static void replaceUnaryOperator() {
Function<Integer, Integer> func = x -> x * 2;
UnaryOperator<Integer> uo = x -> x * 2;
System.out.println(func.apply(6));
System.out.println(uo.apply(6));
}
하지만 어떻게 기능을 사용할 수 있습니다 소비자 또는 더 유연한 교체? 예를 들어 Consumer를 대체하려고하지만 Function<String, null> func = x -> System.out.println(x);
과 같은 코드는 불법입니다.
은 어떤 제안이 크게 ~
왜 그렇게 할 수 있습니까? – Lino
프로덕션 환경에서 코딩 할 때 java.util.function의 다른 함수를 대체하기 위해 함수를 사용하지 않을 것입니다. 함수가 아닌 특정 함수를 사용하는 것이 더 편리 할 수 있기 때문입니다. 그러나 이러한 기능의 성격을 파악함으로써 이러한 기능을 더 잘 이해할 수 있고 실제로 사용할 수 있다고 생각합니다. : D – puppylpg