转换可选<Integer>到可选<长>的好方法TL;DR:在 Java 7 中,没有。
我试图找到一种干净且代码有效的方法来转换为.我正在使用Guava在Java 7中工作。Optional<Integer>
Optional<Long>
因此,在代码中的一个位置,我创建了一个可选整数
Optional<Integer> optionalInt = Optional.fromNullable(someInt);
在另一个领域,我需要它作为可选的长。我能想到的最好的事情是:
Optional<Long> optionalLong = optionalInt.transform(new Function<Integer, Long>() {
@Override
public Long apply(Integer inputInt) {
if (inputInt != null)
return inputInt.longValue();
else
return null;
}
});
但是这很麻烦,特别是如果你考虑到当我使用基元类型时转换类型是多么容易。
有什么好主意吗?