Guava的Optional类非常接近于MaybeJava中的有用类型.我想做的就是扩展一下:
class Maybe<X> extends Optional<X> {
public Maybe<Y> map(Function<X, Y> f) {
if (isPresent()) {
return Maybe.of(f.apply(get()));
}
return Maybe.absent();
}
}
Run Code Online (Sandbox Code Playgroud)
那么难吗?显然是的,确实如此.Java不知道函数中的Y类型是什么map,一切都死得很厉害.是否可以map在Java中编写泛型?
你正在寻找Optional.transform(Function),遵循Guava的调用全map风格函数"转换" 的惯例(例如Lists.transform,Iterables.transform等).