为什么一个方法引用“抛出”的ctor...也扔?
我正在寻找一种优雅的方法来创建一个用于依赖注入的工厂。在我的例子中,工厂只需要调用一个单参数构造函数。我发现这个答案概述了如何将a用于此类目的。Function<ParamType, ClassToNew>
但我的问题是:在我的情况下,我的ctor声明抛出一些检查的异常。
我没有得到的是:使用对该构造函数的方法引用创建该函数不起作用。如:
import java.util.function.Function;
public class Mcve {
public Mcve(String s) throws Exception {
// whatever
}
public static void main(String[] args) {
Function<String, Mcve> mcveFactory = Mcve::new;
}
}
告诉我关于 “未处理的异常: java.lang.Exception” for .尽管此代码未调用构造函数。Mcve::new
两个问题:
- 为什么会出现这个错误?上面的代码没有调用 ctor(还没有)?
- 有什么优雅的方法来解决这个难题吗?(简单地添加到我无济于事)
throws Exception
main()