如果这是FP中的一个基本问题,请原谅.让我们考虑一下可选的Monad.我知道我可以根据一个函数使用map
将Optional
转换为另一个Optional
(如果Optional具有值,则会调用该函数).但是,如果我的函数有两个输入,而不是一个输入呢?
例如:
var data = Optional.of(100);
var result = data.map(x -> x * 2); //all good!
但是,
int getData(Connection conn, int data) { ... }
var data = Optional.of(100);
var connection = getOptionalDataConnection();
var result = data.map(i -> getData(connection?, i)); //this does not work as the getData function only accepts non-optionals
我相信在FP世界中有一个术语,我只是不熟悉它,但我有一个map函数,它接受"两个"输入,而不是一个.我想要一个助手/实用程序/...如果两个输入都在的话,它会调用我的函数.但如果其中任何一个是"空",应该返回Optional.empty()
.
它叫什么?Java支持它吗?