是否可以使用 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/