问题标签 [functional-interface]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 使用 Java 8 的功能样式比较器
大家好,让我先让我清楚我还没有完成这段代码。我从互联网上找到了这个,它使用比较器进行了更好和更干净的排序,因为它是 java 8 函数式编程的新手,我想知道给定代码中的流程是如何流动的。请有人解释一下这段代码是如何工作的。谢谢 :)
java - 使用 Java 8 的类流
我想使用方法引用创建并返回一个对象流,但它对我不起作用。这是我正在尝试的示例,Promotion 是一个接口,由 BuyTwoGetThreePromotionImpl 实现。
我可以猜测方法引用需要是一个功能接口,我的促销对象就是。
java - 在 Stream.map() 中将 Consumer 转换为 Runnable
我正在尝试将 a 转换Consumer
为Runnable
. 以下代码不会在Eclipse IDE 中生成任何编译器错误。
以下代码在 Eclipse IDE 中生成编译器错误。
错误是:
如何帮助编译器将 a 转换Consumer
为 a Runnable
?
下面的代码解决了这个问题,但非常冗长。
有没有更简洁的方法来做到这一点?我知道我可以创建一个接受 aConsumer
并返回 a的静态方法Runnable
,但我不认为这更简洁。
java - Java:聚合操作
我正在研究泛型、函数式接口、lambda 表达式和聚合操作。尽管我单独理解这些技术,但我无法将它们统一概念化,即它们如何协同工作。
使用取自 Java Doc 的示例,标题为:interface Collector(T,A,R):
上述方法,在上述 javadoc 中,具有以下行为参数:
上例中提供的供应商使用方法参考:TreeSet::new
.
TreeSet::new
用作结果提供者的 与累加器的关系是什么?...与组合器的关系是什么?
这是如何工作的,我不明白这是一个供应商!?
任何有关这一广泛主题的文档链接都将价值不菲。谢谢你的耐心。
java - (() -> {}) 的 Java 函数签名
什么是有效的函数签名funSig
?
java - 创建一个空的功能接口数组
我有一个方法返回一个空数组Function<T,V>
但我在运行时赶上java.lang.ClassCastException
。是否可以返回一个空的功能接口数组?
java - Java 8 多重映射
是否可以对集合执行多个映射?以下代码编译错误:
... 在 Stream 中不能应用于
java.util.function.Function<capture<?>,capture<?>>
我想通用解决方案。
java - 通过 lambda 表达式实现具有两个抽象方法的接口
在 Java 8 中引入了lambda 表达式来帮助减少样板代码。如果接口只有一种方法,它可以正常工作。如果它由多个方法组成,那么这些方法都不起作用。如何处理多种方法?
我们可以去下面的例子
那么主函数的结构将是什么来定义主函数本身的方法呢?
java - 使用 Lambda 方法简化事件在 Java 中不起作用
我正在尝试EventHandler<ActionEvent>
使用 JavaFX 在 Java 8 中提供一个更简单的版本。
最终版本应该看起来像
有了这个,我试图以更简单的方式创建事件处理程序:它们不将事件作为参数,它们关心隐藏自己。
为了演示,我创建了一个测试套件来重现我遇到的问题:
在这里,我预计会发生以下情况:
- 如果我调用
callIt()
或handle()
使用处理程序的基本版本,它会照常调用。 - 如果我用处理程序类的“专门”简化版本来调用它们,我希望它将调用转向我给出的简化版本。
这仅部分有效:
- 使用
Simple
/Complicated
组合,它可以工作:调用complicated(int)
a 的方法Simple
打印给定的参数,然后调用该simple()
方法,该方法又表示为 lambda。 - 然而,我所追求的组合是将 an 表示
EventHandler<ActionEvent>
为一个 lambda(甚至可能是空的),它形成了一个调用 thisClickable
的a 。(请不要对名称感到困惑;这是一个非常具有历史意义的界面,我将对其进行改进,但不会完全改变。)在这种情况下,它不起作用。handle()
onClick()
这是我得到的堆栈跟踪:
为什么它不起作用?
(如果我对情况不够清楚,请告诉我。)
java - 对返回接口的方法的静态引用(带 :: )
我有几个预定义的静态“处理器”实现相同的方法,例如:
样本 :
现在想象一下,我有一些可以提供附加“处理器”列表的对象。
我正在尝试使用 aninterface
来定义那些额外的“处理器”。
使用附加“处理器”实现对象:
在这里,一切都可以编译并且工作正常。但现在我被困住了。
使用SomeObject::getExtraProccessors
我对返回接口的静态方法有引用,如何调用接口的方法?
我的第一次尝试是
但这并不能编译给出The target type of this expression must be a functional interface
所以请你告诉我是否可以这样做,如果可以,怎么做?如果不可能,我该怎么做?