如何将Function作为参数传递给computeIfAbsent方法?

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)

Era*_*ran 7

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)