java - 使用 Lambda 创建静态内部函数?

标签 java lambda java-8

是否可以使用 lambda 创建静态内部函数?

具体来说,我想做以下事情:

function myFunc(){
    Map<Integer, String> myMap = new HashMap <Integer, String> ();
    myMap.put(1,"A");
    String head = () -> myMap.get(1);
    myMap.put(1,"B");

    System.out.println(head);   // Should print B
}

最佳答案

所有 lambda 都是内部函数。你写的那个是Supplier<String> :

Supplier<String> getHead = () -> myMap.get(1);
System.out.println(getHead.get());

您可以通过查看 java.util.function 查看存在哪些类型的函数包。

但是请注意,完成此操作的标准方法(在 lambda 之前)只是简单地编写一个 private方法并调用它,传统风格涉及的开销较少,但该开销是否显着是另一个问题。

关于java - 使用 Lambda 创建静态内部函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28935933/

相关文章:

java - 使用 rsync 将文件复制到目录时,Java Watch 服务从操作系统获取临时文件通知而不是实际文件

c++ - 如何转换C++11中忽略参数的函数?

Java Streams with Optional 转换的工作原理

java - 在不同的线程中使用 swing

java - 在 Scala 中初始化 Apache Beam 测试管道失败

c# - 使用 entityframework 重用 Linq to SQL 代码

java - 为什么 CompletableFuture 在单独的流中加入/获得比使用一个流更快

java-8 - Java 8 Stream flatMap 和 group by 代码编译器错误

java - 如何完美捕获o = object.object.object操作中的Java NullPointerException?

node.js - 在现有 S3 对象上运行 S3-put-triggered Lambda 函数?