为了防止重复关闭,这个问题和这个完全不同。考虑我有以下界面@FunctionalInterfaceinterface FuncE0<R, E extends Exception> { R call() throws E;}它适用于 lambdaFuncE0<Integer, IOException> get() { return () -> 1;}但是如果我让接口从 扩展Callable,它就会中断。@FunctionalInterfaceinterface FuncE0<R, E extends Exception> extends Callable<R> { @Override R call() throws E;}用法相同。编译器给了我以下错误JustTest.java:8: error: call() in <anonymous JustTest$> cannot implement call() in FuncE0 return () -> 1; ^ overridden method does not throw Exception如果删除重写方法R call() throws E中FuncE0,它的工作原理。如果您使用匿名类,它会起作用。如果您使用 eclipse,则 ECJ 可以工作。当我覆盖抛出的异常时发生了什么?这是一个javac错误吗?我正在使用 jdk_1.8_112最小化代码以重现import java.io.IOException;import java.util.concurrent.Callable;public class JustTest { public static FuncE0<Integer, IOException> get() { return () -> 1; } @FunctionalInterface public interface FuncE0<R, E extends Exception> extends Callable<R> { @Override R call() throws E; }}
添加回答
举报
0/150
提交
取消