问题标签 [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.
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>
这是完整的代码示例:
java - java8 lambda中是否有类型转换值的简写
目前我正在这样做:
有这个的简写吗
java - Java8 方法引用用作函数对象以组合函数
Java8中是否有一种方法可以将方法引用用作Function
对象来使用其方法,例如:
此问题与 无关Stream
,仅用作示例,我想对方法参考有答案
java - 如何在 Java 中传递和调用方法引用
假设我有一个名为 的类Server
,我想允许其他Plugins
人为它编写。SayPlugin
是一个扩展Runnable
并添加了一个方法的接口:void init(...)
. 插件的工作是收集数据并将其发送到服务器。然而,当需要向服务器发送数据时,它是如何做到的呢?来自 C 和 C++,我正在寻找沿着函数指针的思路。尽管我没有在 Java 标准类库之外找到示例,但在 Java 中似乎是可能的。
如何将方法引用传递给init
方法,以便它可以由 存储Plugin
,然后在插件想要发送数据时如何调用该方法?现在说所需的服务器方法是:void sendData(Integer data)
.
例如:
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?
java - Please Explain Java 8 Method Reference to instance Method using class name
Please explain how
boolean sameTemp()
is compatible withfunc()
in Functional interface.sameTemp()
method got implemented onfunc()
in Functional Interface.count = counter(weekDayHighs, HighTemp::sameTemp, new HighTemp(89));
is working
Please Explain All points separately.
java - Java 代码中的奇怪逻辑错误
为什么在and'a'
中使用时结果为假?为什么未注释时结果为真?请解释我在哪里犯了错误。f1
f2
f2.Set(f1.Get());
java - 在流操作中使用方法引用和函数对象的区别?
在使用 Java 8 流时,我经常发现我需要重构一个多语句 lambda 表达式。我将用一个简单的例子来说明这一点。假设我已经开始编写这段代码:
现在我不太喜欢map
调用中的大 lambda 表达式。因此,我想从那里重构它。Function
我看到两个选项,或者我在我的班级中创建一个实例:
并像这样使用它:
或者我只是制作一个方法:
并使用方法参考:
除了明显的口味问题之外,这两种方法有什么优点或缺点吗?
例如,我知道堆栈跟踪在方法参考案例中变得更具可读性,这是一个小优势。
java - 如何从 LambdaMetafactory 解决不正确的参数
我正在尝试使用LambdaMetafactory.metafactory()在 App.java 的 main 方法中执行带注释的方法。代码可以在这里找到:github上的代码
如果我试图执行这段代码,它会抛出异常: