functional-programming - java 8中构造函数引用的用途是什么

标签 functional-programming java-8 method-reference

我正在阅读有关 Java 8 特性的文章,这使我看到了 article我想知道构造函数引用的实际用途,我的意思是为什么不直接使用 new Obj ?

P.S,我试过谷歌搜索,但我找不到有意义的东西,如果有人有代码示例、链接或 tut,那就太好了

最佳答案

首先,你应该明白构造函数引用只是方法引用的一种特殊形式。关于方法引用的要点是它们不调用引用的方法,而是提供一种方法来定义一个函数,该函数将在被评估时调用该方法。

链接文章的示例可能看起来没那么有用,但这是简短的自包含示例代码的普遍问题。这与“hello world”程序相同。这并不比直接在控制台中输入文本“hello world”更有用,但无论如何也不是这样。它的目的是演示编程语言。

assylias has shown ,有些用例涉及已经存在的功能 interface s 使用 JFC API。

关于将与构造函数引用一起使用的自定义功能接口(interface)的有用性,您必须考虑使用的原因(功能)interface一般来说:抽象。

由于 interface 的目的就是抽象底层操作,用例就是你不想无条件执行的地方new SomeType(…)手术。

所以一个例子是众所周知的工厂模式,您可以在其中定义 interface通过构造函数引用构造对象并实现工厂只是无限可能中的一种选择。

另一个重要的一点是各种通用方法,其中需要构造类型实例的可能性,由于类型删除而未知。它们可以通过作为参数传递的函数以及现有函数之一是否 interface 来实现。 s 适合或需要一个定制的只是取决于所需的参数数量和类型。

关于functional-programming - java 8中构造函数引用的用途是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29386441/

相关文章:

javascript - Flowtype Javascript 推理未按预期工作

functional-programming - Ocaml - Lazy.force

java - java 8中的复杂比较器

Java 8 : Do not understand the way Java implements Functional Interfaces

java - Java 8 中对多维数组的方法引用

python 可重用的用户错误处理

haskell - 为什么 "map (filter fst)"的类型是 "[[(Bool, a)]] -> [[(Bool, a)]]"?

maven - 无法从 Maven 测试单元中调用 sun.security.tools.keytool.Main

mysql - Java 8 java.time 未正确映射到 mysql

java - 如何将一个方法作为参数传递给另一个方法?