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

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

包裝方法拋出異常時出現(xiàn)編譯錯誤

包裝方法拋出異常時出現(xiàn)編譯錯誤

幕布斯7119047 2023-02-16 15:43:57
在 JDK 11 和 12 中,包裝為在流中拋出運行時異常的已檢查異常失敗并出現(xiàn)編譯錯誤。package com.mmk.test;import java.net.URL;import java.util.ArrayList;import java.util.function.Function;public class App {    public static void main(String[] args) {        var list = new ArrayList<String>();        list.add("http://foo.com");        list.stream().map(wrap(url -> new URL(url)));    }    static <T, R, E extends Throwable> Function<T, R>    wrap(FunException<T, R, E> fn) {        return t -> {            try {            return fn.apply(t);            } catch (Throwable throwable) {                throw new RuntimeException(throwable);            }        };    }    interface FunException<T, R, E extends Throwable> {        R apply(T t);    }}預(yù)期:沒有編譯錯誤,也沒有輸出。實際:編譯錯誤,未處理的異常。
查看完整描述

1 回答

?
慕尼黑的夜晚無繁華

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

FunException::apply方法沒有聲明任何要拋出的異常,因此當(dāng)您創(chuàng)建一個可以拋出異常的 lambda 時

url -> new URL(url)

編譯器會抱怨,因為你沒有處理這個異常,也FunException::apply沒有在它的throws子句中聲明它。

您可以通過添加一個子句使其工作throws,即:

interface FunException<T, R, E extends Throwable> {
    R apply(T t) throws E;
}


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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