问题标签 [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 投票
1 回答
2630 浏览

java - 如何获取类中所有方法的方法参考(Java)?

Java 8 中特定方法的方法参考可以通过Class::Method. 但是如何获取一个类的所有方法的方法引用呢?

所有所需的方法都具有不同的方法名称,但具有相同的类型签名。此外,这些方法的名称事先是未知的。

例子:

对已知方法的方法引用op0可以得到如下:

但是,如何获取类中所有方法的方法引用呢?

0 投票
2 回答
338 浏览

functional-programming - java 8中构造函数引用的用途是什么

我正在阅读有关 Java 8 特性的信息,这导致我阅读了这篇文章,我想知道构造函数引用的实际用途,我的意思是为什么不直接使用new Obj

PS,我试过谷歌搜索,但我找不到有意义的东西,如果有人有代码示例、链接或 tut 会很棒

0 投票
2 回答
408 浏览

java - 引用构造函数的目的:Java 8

我正在阅读 Java8 中的方法引用文档

在其中我遇到了一个关于各种方法参考的表格,在最后一个中有 4 个

您可以使用名称 new 以与静态方法相同的方式引用构造函数。

我无法理解对构造函数的引用到底是做什么的?

注意:我知道 Java 文档是不言自明的,但在这种情况下,我无法理解它究竟想要传达什么。

0 投票
2 回答
650 浏览

java - 同步表达式中的方法引用

对不起,伙计们,但我不明白,在哪个对象是synchronized块内部sync()方法是同步的:

如果在方法引用对象上,为什么我不能只写: synchronized (TestLambda::new)?(这将是编译时错误)。

有任何想法吗?

UPD:以防万一:它确实是同步的

UPD-2:对于那些怀疑的人,简单的例子:

0 投票
1 回答
7349 浏览

java - Java 8 数组构造函数引用如何工作?

假设我们有一个IntFunction返回整数数组的类型变量:

使用 Java 8 泛型,可以使用如下构造函数引用来初始化此变量:

Java 编译器如何将其转换为字节码?

我知道对于其他类型,比如String::new,它可以使用invokedynamic指向 String 构造函数的指令java/lang/String.<init>(...),这只是一个具有特殊含义的方法。

看到有构造数组的特殊说明,这如何与数组一起工作?

0 投票
0 回答
107 浏览

java - 如何通过反射获取方法引用?

假设我有一些函数接口,如 Function 和不同类的一些方法,我可以为其获取方法引用,例如:

如何通过反射从 A 类中获取所有可能的方法引用转换为 Function 接口的实例?

更新:

到目前为止,这个问题与评论中提到的任何问题都没有重复,但由于Holger在他的评论中提到的两个问题,我已经设法做我需要的事情:

0 投票
2 回答
898 浏览

java - Java Lambda 表达式

我目前正在 JDK 1.8 上学习 lambda 表达式。我遇到了一些我发现我不明白的代码。

这是代码:

comp.compare("5", "3")最终执行"5".compareTo("2")。我的理解是编译器需要找到一个与签名相同的静态方法

我已经创建了这样的方法并且它有效。我不明白为什么 java 编译器调用"5".compareTo("2"). 他们的方法符号不一样。

关于编译器为什么生成这种代码的任何信息?

0 投票
1 回答
56705 浏览

java - 使用带参数的方法引用

我刚开始学习 Java 流并遇到了一个问题。请看以下示例。这是 Node 类的一部分:

我的意图是使用流中每个节点上的名称和结果参数调用#findChildren。我尝试使用引用 Node::findChildren 的方法,但没有成功。我很欣赏其他带有->操作员的解决方案。

是否可以将方法引用与参数一起使用?我喜欢流的想法,我只是想让代码更具可读性。

实际上,我认为有一个类似的问题Method references with a parameter我读过但无法弄清楚如何在我的代码中使用 bind2 方法。它是唯一的解决方案吗?

0 投票
0 回答
106 浏览

java - 如何在 java 8 lambda 中获取 FunctionalInterface 方法信息

我想测试两个 lambda 方法是否相等;例如:

输出:


我的目标是验证这两个 lambda 函数是相同的方法。

即有一个返回true 的测试。

这样,我可以从FunctionalInterface获取方法信息吗?

谢谢

0 投票
4 回答
2373 浏览

java - Java 8 中的方法引用是否具有具体类型,如果有,它是什么?

这个问题与另一个问题密切相关。但是,我觉得对该问题的公认答案并不那么确定。

那么,Java 8 中方法引用的类型是什么?下面是如何将方法引用“转换”(提升?)到 a 中的一个小演示java.util.function.Function

那么,是否有一种不那么痛苦(更直接)的方式将方法引用转换为可以传递的编译/具体类型?