May*_*til 4 java lambda functional-programming hashmap java-8
我是Java新手,有点从C#过渡到Java.
java.util.function有一个接口定义为Function输入到computeIfAbsent方法Map.
我想定义并将该函数委托给computeIfAbsent方法.
map.computeIfAbsent(key, k => new SomeObject())
Run Code Online (Sandbox Code Playgroud)
工作,但我希望它与func回调.但问题是Function需要定义输入参数.如何将其设置为void或不设置参数.
map.computeIfAbsent(key, func);
Run Code Online (Sandbox Code Playgroud)
computeIfAbsent将始终具有传递的输入参数Function- 这将是关键.
因此,就像你可以写:
map.computeIfAbsent(key, k -> new SomeObject());
Run Code Online (Sandbox Code Playgroud)
你也可以写(假设你的钥匙Map是a String):
Function<String,SomeObject> func = k -> new SomeObject();
map.computeIfAbsent(key, func);
Run Code Online (Sandbox Code Playgroud)