Так как этот Consumer/Supplier/Predicate/UnaryOperator является только особым случаем функции, как я могу заменить эти interfacces на Function?
T → Функция → R
T → Потребитель → null
null → Поставщик → T
T → Predicate → boolean
T → UnaryOperator → T
null и boolean - это просто частный случай для T. Поэтому я пишу два случая, используя Function для замены 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);
является незаконным.
Любое предложение будет принята с благодарностью ~