在 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ù)期:沒有編譯錯誤,也沒有輸出。實際:編譯錯誤,未處理的異常。
包裝方法拋出異常時出現(xiàn)編譯錯誤
幕布斯7119047
2023-02-16 15:43:57