第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

在封閉的 switch 表達(dá)式之外返回

在封閉的 switch 表達(dá)式之外返回

慕斯709654 2023-02-23 14:28:14
我在 Java 12 中使用開關(guān)表達(dá)式1將字符串轉(zhuǎn)換為HTTP 方法:static Optional<RequestMethod> parseRequestMethod(String methodStr) {    return Optional.ofNullable(          switch (methodStr.strip().toUpperCase(Locale.ROOT)) {              case "GET" -> RequestMethod.GET;              case "PUT" -> RequestMethod.PUT;              case "POST" -> RequestMethod.POST;              case "HEAD" -> RequestMethod.HEAD;              default -> {                  log.warn("Unsupported request method: '{}'", methodStr);                  return null;              }          });}我想警告默認(rèn)分支中不受支持的方法并返回 null(然后將其包裝在 Optional 中)。但是上面的代碼會導(dǎo)致編譯器錯誤:在封閉的 switch 表達(dá)式之外返回我如何讓它編譯?為了完整起見,這里是枚舉的定義RequestMethod:enum RequestMethod {GET, PUT, POST, HEAD}1 switch 表達(dá)式作為預(yù)覽功能在 Java 12 中引入。
查看完整描述

1 回答

?
千巷貓影

TA貢獻(xiàn)1829條經(jīng)驗 獲得超7個贊

yield在 Java 13 中使用

在 Java 13 中,switch 表達(dá)式使用新的受限標(biāo)識符1yield從塊中返回值:


return Optional.ofNullable(

        switch (methodStr.strip().toUpperCase(Locale.ROOT)) {

            case "GET" -> RequestMethod.GET;

            // ... rest omitted


            default -> {

                log.warn("Unsupported request method: '{}'", methodStr);

                // yield instead of return

                yield null;

            }

        });

break在 Java 12 中使用

在 Java 12 中,switch 表達(dá)式用于break從塊中返回值:


return Optional.ofNullable(

        switch (methodStr.strip().toUpperCase(Locale.ROOT)) {

            case "GET" -> RequestMethod.GET;

            // ... rest omitted


            default -> {

                log.warn("Unsupported request method: '{}'", methodStr);

                // break instead of return

                break null;

            }

        });

1yield不是關(guān)鍵字,正如用戶 skomisa 所指出的那樣。



查看完整回答
反對 回復(fù) 2023-02-23
  • 1 回答
  • 0 關(guān)注
  • 145 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號