如何使用Java<;E扩展可丢弃性>;成为未检查的异常

如何使用Java<;E扩展可丢弃性>;成为未检查的异常,java,Java,我期望下面的代码示例编译失败(main方法中的未处理异常),但它在Java1.8中编译成功。如何成为未检查的异常 public class Test { public static void main(String[] args) { throwAsUnchecked(new Exception("Testing new checked exception")); } @SuppressWarnings("unch

我期望下面的代码示例编译失败(main方法中的未处理异常),但它在Java1.8中编译成功。
如何成为未检查的异常

    public class Test {
        public static void main(String[] args) {
            throwAsUnchecked(new Exception("Testing new checked exception"));
        }

        @SuppressWarnings("unchecked")
        private static <E extends Throwable> void throwAsUnchecked(Exception exception) throws E {
            throw (E) exception;
        }
  }
公共类测试{
公共静态void main(字符串[]args){
throwAsUnchecked(新异常(“测试新检查的异常”));
}
@抑制警告(“未选中”)
私有静态void throwasinchecked(异常异常)抛出{
抛出(E)异常;
}
}

从Java 8开始,E被推断为RuntimeException。因此,您将自己标记为一个副本,这是第一个:)从Java8开始,E推断为RuntimeException。因此,您将自己标记为复制品,这是第一个:)