我是Java的新手,有点从C#到Java的过渡。java.util.function具有定义为Function的接口(interface),该接口(interface)输入到computeIfAbsentMap方法中。

我想定义该函数并将其委托(delegate)给computeIfAbsent方法。

map.computeIfAbsent(key, k => new SomeObject())

可以,但是我想要在func回调中使用它。但是问题是Function需要定义输入参数。如何将其设置为void或不带参数。
map.computeIfAbsent(key, func);

最佳答案

computeIfAbsent将始终具有传递的Function的输入参数-这将是关键。

因此,就像您可以这样写:

map.computeIfAbsent(key, k -> new SomeObject());

您还可以编写(假设Map的键是String):
Function<String,SomeObject> func = k -> new SomeObject();
map.computeIfAbsent(key, func);

关于java - 如何将函数作为参数传递给computeIfAbsent方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54743797/

10-12 01:42