Java 实施';也许';在爪哇

Java 实施';也许';在爪哇,java,Java,Guava的类非常接近于Java中有用的类型。我只想把它扩展一点: 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(); } } 类可能是可选的{ 公共

Guava的类非常接近于Java中有用的
类型。我只想把它扩展一点:

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();
  }
}
类可能是可选的{
公共地图(功能f){
if(isPresent()){
返回Maybe.of(f.apply(get());
}
可能返回。缺席();
}
}

这么难吗?显然是的。Java不知道
map
函数中的
Y
类型是什么,所有东西都会可怕地死去。可以用Java编写一个通用的
map
吗?

您正在寻找的,遵循Guava的惯例,调用所有
map
风格的函数“transform”(例如list.transform、Iterables.transform等)。

从JDK8开始,这是作为Java.util.Optional实现的,当它与流集成时,它似乎具有您正在寻找的映射功能。


我知道这个回复已经很晚了,但我添加它作为一个答案,以方便其他人搜索。

我不熟悉
可选的
可能的
类,但是Java中已经有泛型了。我不寻找键值对映射。我正在寻找将此函数应用于内容映射的函数。实际上,我还想实现join和catMaybes等。但是Optional.transform的实现向我展示了如何实现这样的事情。谢谢(对于那些好奇的人来说,答案是声明函数,比如
public Maybe map(…){
;这就是我缺少的java语法。)