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