问题标签 [method-reference]

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 投票
2 回答
217 浏览

java - Java中的函数编程。Method-ref 与 Function apply 签名不匹配但成功运行

我目前正在阅读Venkat Subramaniam 的 Java 函数式编程,到目前为止它是一本很棒的书。

然而,有一个特殊的例子让我有些困惑。在下面的代码示例中,有一个名为setFilters(final Function<Color,Color>... filters).

这需要一个实现 Function 接口的列表。在代码中使用方法引用调用 setFilters ... camera.setFilters(Color::lighter, Color::darker);

这很令人困惑,因为 Color 类没有实现 Function 接口,也没有与R apply(T t);签名匹配的方法。

我在这里错过了什么明显的东西吗?有人可以解释一下如何Color::darker将 etc 传递给期望的参数Function<Color,Color>

这是完整的代码示例:

0 投票
0 回答
191 浏览

java - java8 lambda中是否有类型转换值的简写

目前我正在这样做:

有这个的简写吗

0 投票
7 回答
9889 浏览

java - Java8 方法引用用作函数对象以组合函数

Java8中是否有一种方法可以将方法引用用作Function对象来使用其方法,例如:

此问题与 无关Stream,仅用作示例,我想对方法参考有答案

0 投票
5 回答
3458 浏览

java - 如何在 Java 中传递和调用方法引用

假设我有一个名为 的类Server,我想允许其他Plugins人为它编写。SayPlugin是一个扩展Runnable并添加了一个方法的接口:void init(...). 插件的工作是收集数据并将其发送到服务器。然而,当需要向服务器发送数据时,它是如何做到的呢?来自 C 和 C++,我正在寻找沿着函数指针的思路。尽管我没有在 Java 标准类库之外找到示例,但在 Java 中似乎是可能的。

如何将方法引用传递给init方法,以便它可以由 存储Plugin,然后在插件想要发送数据时如何调用该方法?现在说所需的服务器方法是:void sendData(Integer data).

例如:

0 投票
3 回答
538 浏览

java - 给定一个 `Class` 对象,获取对 `toString` 的方法引用

如果您只有一个Class对象,如何获得对方法的方法引用,例如toString?稍后我们将拥有这个特定类的实例,我们将在其上通过方法引用调用此方法。

例如,考虑一个 Java 枚举,它是Enum. 这里T定义为<T extends Enum>

我收到一条错误消息,提示“方法引用无效”。

0 投票
3 回答
3063 浏览

java - Cast java.util.function.Function to Interface

Example

In this (simplified) example I can create my MyInterface-object by using a method reference to apply, but casting directly doesn't work.

The second assignment gives the compiler error:

The question

Can I do some Generics magic, to be able to cast a Function<T, R> to an Interface?

0 投票
4 回答
4377 浏览

java - Please Explain Java 8 Method Reference to instance Method using class name

Please explain how

  1. boolean sameTemp() is compatible with func() in Functional interface.
  2. sameTemp() method got implemented on func() in Functional Interface.
  3. count = counter(weekDayHighs, HighTemp::sameTemp, new HighTemp(89)); is working

Please Explain All points separately.

0 投票
2 回答
56 浏览

java - Java 代码中的奇怪逻辑错误

为什么在and'a'中使用时结果为假?为什么未注释时结果为真?请解释我在哪里犯了错误。f1f2f2.Set(f1.Get());

0 投票
2 回答
386 浏览

java - 在流操作中使用方法引用和函数对象的区别?

在使用 Java 8 流时,我经常发现我需要重构一个多语句 lambda 表达式。我将用一个简单的例子来说明这一点。假设我已经开始编写这段代码:

现在我不太喜欢map调用中的大 lambda 表达式。因此,我想从那里重构它。Function我看到两个选项,或者我在我的班级中创建一个实例:

并像这样使用它:

或者我只是制作一个方法:

并使用方法参考:

除了明显的口味问题之外,这两种方法有什么优点或缺点吗?

例如,我知道堆栈跟踪在方法参考案例中变得更具可读性,这是一个小优势。

0 投票
2 回答
693 浏览

java - 如何从 LambdaMetafactory 解决不正确的参数

我正在尝试使用LambdaMetafactory.metafactory()在 App.java 的 main 方法中执行带注释的方法。代码可以在这里找到:github上的代码

如果我试图执行这段代码,它会抛出异常: