我正在使用 lambda 表达式进行一些测试,但我的代码无法编译。我的 lambda 实现是错误的还是异常处理?以下代码的正确实现是什么?
class MyObject { }
interface Creatable<T> {
T create() throws IOException;
}
/* Using the code: */
Creatable<MyObject> creator = () -> {
try {
return new MyObject();
} catch (IOException e) {
e.printStackTrace();
}
};
MyObject obj1 = creator.create();
如果我删除 try catch 块并声明要在方法中抛出的异常,则代码编译并正常运行。
Creatable<MyObject> creator = () -> new MyObject();
编译错误是:
incompatible types: bad return type in lambda expression