亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

編寫 Java 8 可選對象

編寫 Java 8 可選對象

汪汪一只貓 2023-04-13 16:51:38
假設我的代碼中有以下 Optionals:Optional<Integer> a = Optional.of(1);Optional<Integer> b = Optional.of(1);Optional<Integer> c = Optional.of(1);a如果它們全部 ( ,b和c) 都存在,我需要實現一些邏輯。我怎樣才能優雅地做到這一點?我需要做這樣的事情(例如):...if (a.isPresent() && b.isPresent() && c.isPresent()) {    return a.get() + b.get() + c.get();}...
查看完整描述

2 回答

?
阿波羅的戰車

TA貢獻1862條經驗 獲得超6個贊

這里:

Optional<Integer> a = Optional.of(1);
Optional<Integer> b = Optional.of(1);
Optional<Integer> c = Optional.of(1);

問題是:當您聲明這樣的“獨立”變量時,您也必須“獨立”地處理它們(編寫代碼?。?/p>

換句話說:要么使用諸如Stream.of()or 之類的東西Arrays.asList(a, b, c)進行進一步處理;或者只是在創建時直接將這些“常量”放入列表/數組中。

因為只有這樣你才能轉向流邏輯,正如 Luis 的評論中所概述的那樣。


查看完整回答
反對 回復 2023-04-13
?
BIG陽

TA貢獻1859條經驗 獲得超6個贊

您可以從所有這些創建流并執行減少操作:

Stream.of(a, b, c)
    .filter(Optional::isPresent)
    .map(Optional::get)
    .mapToInt(Integer::intValue)
    .sum();


查看完整回答
反對 回復 2023-04-13
  • 2 回答
  • 0 關注
  • 123 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號