问题标签 [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 回答
2706 浏览

java-8 - Java 8 如何知道在排序时使用哪个 String::compareTo 方法引用?

Java 如何知道String::compareTo调用时使用哪个方法引用Collections.sort(someListOfStrings, String::compareTo);compareTo不是静态的,它需要知道value比较的“左侧”。

0 投票
2 回答
12025 浏览

java - 为什么这个 Java 8 方法参考会编译?

我目前正在深入研究Java 8Lambda 和方法引用等功能。玩了一下让我想到了以下示例:

我的问题是:

为什么 main 方法中的行编译?

如果我理解正确,则引用方法的签名必须与功能接口的 SAM 签名相对应。在这种情况下,消费者需要以下签名:

但是,该requireNonNull方法返回T而不是 void:

0 投票
2 回答
6207 浏览

java - 这个表达式的目标类型应该是一个函数式接口

下面的一段代码给了我一个编译错误

编译错误是:这个表达式的目标类型应该是一个函数式接口

我的 Book.java 类如下所示:

我尝试在 Eclipse(Mars)和 cmd 行上运行它并看到了同样的问题。

但是,如果我将其更改为.filter(b -> b.getPrice() >200)它可以工作。

我不清楚为什么方法参考在我的情况下不起作用。

0 投票
1 回答
2589 浏览

java - SonarQube 没有看到方法参考

我的课堂上有私有方法。

我看到了主要问题:

这个问题已知吗?

如何解决?解决方法?

0 投票
2 回答
151 浏览

java - 如何在 Java 8 中直接使用函数作为函数类型

如果我创建一个功能接口:

现在,如果我有一堂课:

现在,如果我想使用我的功能界面,我可以:

但我不能做这样的事情:

这是有道理的,因为 Java 无法知道myClass::printStrings可以应用于函数式接口Consumer2。为此,我创建了一个实用程序类:

然后我可以:

甚至,这将起作用:

在这种情况下,只要 Java 8 有某种方法可以理解该函数类型。所以,问题是,最好的方法是什么,同时又可能避免使用样板文件?

0 投票
3 回答
7013 浏览

java-8 - 方法参考。无法对非静态方法进行静态引用

有人可以向我解释一下,
为什么将非静态方法引用传递给方法File::isHidden是可以的,
但是将方法引用传递给非静态方法MyCass::mymethod- 给我一个 “不能对非静态方法进行静态引用”

0 投票
4 回答
320 浏览

java - JDK中是否有用于减去双打的方法参考?

Double::sum是添加双打的方法参考,即。(a,b) -> a+b.

为什么JDK中没有减号的方法参考?即(a,b) -> a-b

0 投票
3 回答
3538 浏览

java - Java 8 可以动态实现接口以供方法参考吗?

我学习了 Java 8 的新特性。

我正在玩不同的例子,我发现了一个奇怪的行为:

这段代码编译成功,但我不知道它是如何工作的。

为什么Test::new可以作为供应商接受?

供应商界面看起来很简单:

0 投票
1 回答
488 浏览

java - Java 8 在使用 :: 时缺少参数

Java 8::仅通过方法名称启用方法引用。

但是,根据BeanFactory 接口(Spring)getBean() getBean不接受空参数 - 一些参数值是预期的:

getBean(String name)
getBean(String name, Class requiredType)
getBean(String name, Object[] args)

这是如何解决的?

0 投票
4 回答
997 浏览

java - 方法引用的类型是什么?

说我们有

作为方法参考的 method1 的类型是什么?

foo()也就是说,这个调用的方法签名是什么?:

笔记:

我定义了一个接口

似乎将 foo 声明为

(因为它匹配调用foo(A::method1) --insidefoo你必须写成b=i.m(a,c)mean b=a.method1(c))。

这是唯一的出路吗?