首页 > 解决方案 > 如何将函数作为参数传递给 computeIfAbsent 方法?

问题描述

我是 Java 新手,有点从 C# 到 Java 的过渡。 java.util.function有一个接口定义为Function它是computeIfAbsent方法的输入Map

我想定义该功能并将其委托给computeIfAbsent方法。

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

工作,但我想要它与回调哪里 func。但问题是Function需要定义输入参数。我怎样才能将它设置为void或没有参数。

map.computeIfAbsent(key, func);

标签: javalambdajava-8functional-programminghashmap

解决方案


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

因此,就像你可以写的那样:

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

你也可以写(假设你的键Map是 a String):

Function<String,SomeObject> func = k -> new SomeObject();
map.computeIfAbsent(key, func);

推荐阅读