java - 对字段的 Lambda 引用

标签 java lambda java-8

我想知道如何获取对字段的 lambda 引用。 我不想使用方法,因为我的字段是 public final。 我怀疑这是不可能的,但我没有看到明显的声明。

class A {
   public final String id;
   ...
}

Map<String, A> f(List<A> l) {
   return l.stream().collect(Collectors.toMap(A::id, Function.identity()));
}

最佳答案

听起来您希望Java 对字段引用 具有相应的功能,就像对方法引用 一样。但这种情况并非如此。方法引用是某一类 lambda 表达式的简写,但字段没有对应的语法。在 JSR-335 专家组审议期间探索了字段文字(这里有一些引用 http://mail.openjdk.java.net/pipermail/lambda-dev/2011-November/004235.html),但未包含在 Java SE 8 中。

关于java - 对字段的 Lambda 引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27467946/

相关文章:

java - 如何使用 java 8 将对象的多个属性转换为 List<String>

java - 在 Android Studio 和 JAVA 8 中使用普通 Java 项目

java - Java 的 lambda 语法的分割是什么?

python - 在 eval() 中使用赋值(lambda)时出现语法错误?

python-2.7 - 如何用lambda表达式初始化字典中的键、值对?

java - 依赖关系不能正常工作

java - @WebParam 在 jetty 服务 SOAP 中始终为空

lambda - 有/没有捕获变量的 lambda 之间的签名差异?

java - Spring AOP 在 Tomcat 和 tcserver 中不起作用

java - 如何在读取文件时跳过空行(java)?