使用 Lambda 创建静态内部函数?
Use Lambda to create static inner functions?
是否可以使用 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
包来了解存在哪些类型的函数。
但是请注意,完成此操作的标准方法(自 lambdas 出现之前)就是简单地编写一个 private
方法并调用它,传统样式涉及的开销较少,尽管该开销是否很大又是一个问题。
是否可以使用 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
包来了解存在哪些类型的函数。
但是请注意,完成此操作的标准方法(自 lambdas 出现之前)就是简单地编写一个 private
方法并调用它,传统样式涉及的开销较少,尽管该开销是否很大又是一个问题。