BiFunction接口中的默认andThen()方法

mark42inbound:

有一个默认的方法andThen()BiFunction接口(java.util.function包)。

default <V> BiFunction<T,U,V> andThen(Function<? super R,? extends V> after)

该文件说:

返回一个组合函数,该函数首先将此函数应用于其输入,然后将after函数应用于结果。如果对任一函数的求值抛出异常,则将其中继到组合函数的调用方。

理解解释的含义几乎没有什么困惑。据我了解,andThen()调用默认方法时将返回一个组合函数该组合函数在类型上调用,TU返回类型V最后,after在类型R上调用了函数V

这种方法有什么需要?它实际上如何适合图片?

奥斯曼·D:

理解解释的含义几乎没有什么困惑。

为了尽可能简单地解释它,该方法andThen返回一个函数,该函数首先将给定函数应用于输入,然后将另一个函数应用于该应用程序的结果。

假设我们有两个函数fg,功能f做一些逻辑和功能g做一些其他类型的逻辑的,所以当你撰写f.andThen(g)这基本上意味着g(f(x)),即我们先申请给出参数的函数f(x),然后应用功能g的结果。

例:

BiFunction<Integer, Integer, Integer> f = Math::addExact; 
Function<Integer, Integer> g = e -> e * 2; 
System.out.println(f.andThen(g).apply(10,10)); // 40

我们首先调用函数f(10, 10),然后取其结果20,并将其传递给函数,然后通过产生g(20)乘积20执行240

说实话的语法来调用一个函数Java是不是最好的就可以,所以我可以理解,当有人看起来在这个第一次,可能是难以把握和变得更难跟着你撰写的功能越多,例如C#一个可以简单地做到g(f(10, 10))这一点,在视觉上更容易理解,阅读和理解。

这种方法有什么需要?它实际上如何适合图片?

以我的经验,像上面那样构成函数并不常见,但是我可以想象的一个典型场景是,如果您有各种实用程序方法执行某种逻辑,其中一个函数的结果进一步传递给其他函数进行处理,在这种情况下,您可以通过组合实用程序方法来使用函数组合来创建各种转换管道。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

接口中的默认方法

默认接口中的方法 - Java的

从Java接口中的默认方法调用方法

Java 8接口中的默认方法

接口中方法的默认实现

单元测试接口中调用抽象方法的默认方法

是否可以在Kotlin接口中编写equals方法的默认实现?

使用默认方法从参数化接口中提取类

接口中的默认方法,但只有静态的final字段

从内部接口中的默认方法访问实例变量

Java接口中的默认方法返回值

接口中定义的方法的“默认”实现是什么?

在接口中添加默认和静态方法的原因

接口中的“默认”表示什么?

接口中的静态方法

在接口中使用默认方法是否违反了接口隔离原则?

为什么JCF接口中的许多方法未在Java 8中设为默认方法?

为什么会选择在接口中使用静态方法而不是默认方法

Java-如何避免接口中的静态方法和默认方法

Java 8:BiFunction在使用andThen()和apply()方法时如何工作

接口中默认方法的Java 7替代(仅在Java 8中)

默认和静态方法如何在Java 8接口中工作?

Java 8字节码如何标记接口中的默认方法

如何在Spring Data仓库接口中使用Kotlin默认方法?

能否使Mockito(1.10.17)与接口中的默认方法一起使用?

如何使用Java 8的默认方法在接口中使用EntityManager实例?

我们是否应该对接口中的默认方法进行单元测试(Java 8)?

为什么我只能在 java 接口中定义默认和静态方法?

Java接口中的可选方法