问题标签 [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-8 - Java 8 如何知道在排序时使用哪个 String::compareTo 方法引用?
Java 如何知道String::compareTo
调用时使用哪个方法引用Collections.sort(someListOfStrings, String::compareTo);
?compareTo
不是静态的,它需要知道value
比较的“左侧”。
java - 为什么这个 Java 8 方法参考会编译?
我目前正在深入研究Java 8
Lambda 和方法引用等功能。玩了一下让我想到了以下示例:
我的问题是:
为什么 main 方法中的行编译?
如果我理解正确,则引用方法的签名必须与功能接口的 SAM 签名相对应。在这种情况下,消费者需要以下签名:
但是,该requireNonNull
方法返回T
而不是 void:
java - 这个表达式的目标类型应该是一个函数式接口
下面的一段代码给了我一个编译错误
编译错误是:这个表达式的目标类型应该是一个函数式接口
我的 Book.java 类如下所示:
我尝试在 Eclipse(Mars)和 cmd 行上运行它并看到了同样的问题。
但是,如果我将其更改为.filter(b -> b.getPrice() >200)
它可以工作。
我不清楚为什么方法参考在我的情况下不起作用。
java - SonarQube 没有看到方法参考
我的课堂上有私有方法。
我看到了主要问题:
这个问题已知吗?
如何解决?解决方法?
java - 如何在 Java 8 中直接使用函数作为函数类型
如果我创建一个功能接口:
现在,如果我有一堂课:
现在,如果我想使用我的功能界面,我可以:
但我不能做这样的事情:
这是有道理的,因为 Java 无法知道myClass::printStrings
可以应用于函数式接口Consumer2
。为此,我创建了一个实用程序类:
然后我可以:
甚至,这将起作用:
在这种情况下,只要 Java 8 有某种方法可以理解该函数类型。所以,问题是,最好的方法是什么,同时又可能避免使用样板文件?
java-8 - 方法参考。无法对非静态方法进行静态引用
有人可以向我解释一下,
为什么将非静态方法引用传递给方法File::isHidden
是可以的,
但是将方法引用传递给非静态方法MyCass::mymethod
- 给我一个
“不能对非静态方法进行静态引用”?
java - JDK中是否有用于减去双打的方法参考?
Double::sum
是添加双打的方法参考,即。(a,b) -> a+b
.
为什么JDK中没有减号的方法参考?即(a,b) -> a-b
?
java - Java 8 可以动态实现接口以供方法参考吗?
我学习了 Java 8 的新特性。
我正在玩不同的例子,我发现了一个奇怪的行为:
这段代码编译成功,但我不知道它是如何工作的。
为什么Test::new
可以作为供应商接受?
供应商界面看起来很简单:
java - Java 8 在使用 :: 时缺少参数
Java 8::
仅通过方法名称启用方法引用。
但是,根据BeanFactory 接口(Spring)getBean()
getBean
不接受空参数 - 一些参数值是预期的:
getBean(String name)
getBean(String name, Class requiredType)
getBean(String name, Object[] args)
这是如何解决的?
java - 方法引用的类型是什么?
说我们有
作为方法参考的 method1 的类型是什么?
foo()
也就是说,这个调用的方法签名是什么?:
笔记:
我定义了一个接口
似乎将 foo 声明为
(因为它匹配调用foo(A::method1)
--insidefoo
你必须写成b=i.m(a,c)
mean b=a.method1(c)
)。
这是唯一的出路吗?