3 回答

TA貢獻1829條經(jīng)驗 獲得超13個贊
我不知道更簡單的解決方案,但這將滿足您的需求。
OptionalLong secondScreenHeight = OptionalLong.of(32l);
Optional<Long> optional = secondScreenHeight.isPresent()
? Optional.of(secondSceenHeight.getAsLong())
: Optional.empty();
api.setHeight(optional);

TA貢獻1966條經(jīng)驗 獲得超4個贊
你可以這樣做:
final OptionalLong optionalLong = OptionalLong.of(5);
final Optional<Long> optional = Optional.of(optionalLong)
.filter(OptionalLong::isPresent)
.map(OptionalLong::getAsLong);

TA貢獻1777條經(jīng)驗 獲得超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();
添加回答
舉報