Lambda java8-使用功能接口替换消费者或供应商

Lambda java8-使用功能接口替换消费者或供应商,lambda,java-8,Lambda,Java 8,既然消费者/供应商/谓词/一元运算符只是函数的一个特例,我如何用函数替换这些接口 T->Function->R T->Consumer->null 空->供应商->T T->谓词->布尔 T->一元运算符->T null&boolean只是T的一个特例。所以我编写了两个案例,使用函数替换谓词和一元运算符 例如: private static void replacePredicate() { Function<String, Boolean> func = x -> x

既然消费者/供应商/谓词/一元运算符只是函数的一个特例,我如何用函数替换这些接口

T->Function->R

T->Consumer->null

空->供应商->T

T->谓词->布尔

T->一元运算符->T

null&boolean只是T的一个特例。所以我编写了两个案例,使用函数替换谓词和一元运算符

例如:

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,但代码类似于函数func=x->System.out.printlnx;这是违法的

任何建议都将不胜感激~

消费者可以将其视为一种功能。供应商可以被视为一种功能。您必须从编写为函数的使用者处返回null,并从编写为函数的供应商处获取并忽略Void作为参数

不过,我不确定我是否明白这一点。

消费者可以被视为一种功能。供应商可以被视为一种功能。您必须从编写为函数的使用者处返回null,并从编写为函数的供应商处获取并忽略Void作为参数


不过,我不确定我是否理解了这一点。

为什么要这样做?在生产环境中编码时,我不会用Function替换java.util.Function中的任何其他函数,因为使用特定函数比使用Function更方便。然而,通过发现这些函数的本质,我认为我可以更好地理解这些函数,并在实践中更好地使用它们在生产环境中编码时,我不会用函数替换java.util.Function中的任何其他函数,因为使用特定函数比使用函数更方便。然而,通过发现这些函数的本质,我认为我可以更好地理解这些函数,并在实践中更好地使用它们D