问题标签 [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.

0 投票
0 回答
170 浏览

java - 使用 Java 8 的功能样式比较器

大家好,让我先让我清楚我还没有完成这段代码。我从互联网上找到了这个,它使用比较器进行了更好和更干净的排序,因为它是 java 8 函数式编程的新手,我想知道给定代码中的流程是如何流动的。请有人解释一下这段代码是如何工作的。谢谢 :)

0 投票
1 回答
186 浏览

java - 使用 Java 8 的类流

我想使用方法引用创建并返回一个对象流,但它对我不起作用。这是我正在尝试的示例,Promotion 是一个接口,由 BuyTwoGetThreePromotionImpl 实现。

我可以猜测方法引用需要是一个功能接口,我的促销对象就是。

0 投票
1 回答
2981 浏览

java - 在 Stream.map() 中将 Consumer 转换为 Runnable

我正在尝试将 a 转换ConsumerRunnable. 以下代码不会Eclipse IDE 中生成任何编译器错误。

以下代码在 Eclipse IDE 中生成编译器错误。

错误是:

如何帮助编译器将 a 转换Consumer为 a Runnable

下面的代码解决了这个问题,但非常冗长。

有没有更简洁的方法来做到这一点?我知道我可以创建一个接受 aConsumer并返回 a的静态方法Runnable,但我不认为这更简洁。

0 投票
1 回答
246 浏览

java - Java:聚合操作

我正在研究泛型、函数式接口、lambda 表达式和聚合操作。尽管我单独理解这些技术,但我无法将它们统一概念化,即它们如何协同工作。

使用取自 Java Doc 的示例,标题为:interface Collector(T,A,R)

上述方法,在上述 javadoc 中,具有以下行为参数:

上例中提供的供应商使用方法参考:TreeSet::new.

TreeSet::new用作结果提供者的 与累加器的关系是什么?...与组合器的关系是什么?

这是如何工作的,我不明白这是一个供应商!?

任何有关这一广泛主题的文档链接都将价值不菲。谢谢你的耐心。

0 投票
1 回答
966 浏览

java - (() -> {}) 的 Java 函数签名

什么是有效的函数签名funSig

0 投票
2 回答
699 浏览

java - 创建一个空的功能接口数组

我有一个方法返回一个空数组Function<T,V>

但我在运行时赶上java.lang.ClassCastException。是否可以返回一个空的功能接口数组?

0 投票
2 回答
3593 浏览

java - Java 8 多重映射

是否可以对集合执行多个映射?以下代码编译错误:

... 在 Stream 中不能应用于java.util.function.Function<capture<?>,capture<?>>

我想通用解决方案。

0 投票
4 回答
12600 浏览

java - 通过 lambda 表达式实现具有两个抽象方法的接口

在 Java 8 中引入了lambda 表达式来帮助减少样板代码。如果接口只有一种方法,它可以正常工作。如果它由多个方法组成,那么这些方法都不起作用。如何处理多种方法?

我们可以去下面的例子

那么主函数的结构将是什么来定义主函数本身的方法呢?

0 投票
1 回答
804 浏览

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()

这是我得到的堆栈跟踪:

为什么它不起作用?

(如果我对情况不够清楚,请告诉我。)

0 投票
3 回答
1141 浏览

java - 对返回接口的方法的静态引用(带 :: )

我有几个预定义的静态“处理器”实现相同的方法,例如:

样本 :

现在想象一下,我有一些可以提供附加“处理器”列表的对象。

我正在尝试使用 aninterface来定义那些额外的“处理器”。

使用附加“处理器”实现对象:

在这里,一切都可以编译并且工作正常。但现在我被困住了。

使用SomeObject::getExtraProccessors我对返回接口的静态方法有引用,如何调用接口的方法?

我的第一次尝试是

但这并不能编译给出The target type of this expression must be a functional interface

所以请你告诉我是否可以这样做,如果可以,怎么做?如果不可能,我该怎么做?