3 回答
TA贡献1829条经验 获得超13个赞
我不知道更简单的解决方案,但这将满足您的需求。
OptionalLong secondScreenHeight = OptionalLong.of(32l);
Optional<Long> optional = secondScreenHeight.isPresent()
? Optional.of(secondSceenHeight.getAsLong())
: Optional.empty();
api.setHeight(optional);
TA贡献1966条经验 获得超4个赞
你可以这样做:
final OptionalLong optionalLong = OptionalLong.of(5);
final Optional<Long> optional = Optional.of(optionalLong)
.filter(OptionalLong::isPresent)
.map(OptionalLong::getAsLong);
TA贡献1777条经验 获得超3个赞
另一种可能性,尽管仅来自 JDK 9 是通过新OptionalLong.stream()方法,它返回一个LongStream. 然后可以将其装箱为Stream<Long>:
OptionalLong optionalLong = OptionalLong.of(32);
Optional<Long> optional = optionalLong.stream().boxed().findFirst();
使用 JDK 8 可以完成类似的操作,方法是跳出Guava 中的Streams实用程序类:
Optional<Long> optional = Streams.stream(optionalLong).boxed().findFirst();
添加回答
举报