因此,我正在构建一个测试库,我将主要用于个人使用,但是我有一个问题。抛出异常然后调用构造函数?
对于Java,如果您的类中有2个或更多的构造函数,如果您希望从另一个构造函数中调用另一个构造函数,那么它必须是您首先要做的。这对我来说是有问题的,因为我有以下设置。
public Constructor(TypeA a, TypeB b, TypeC c) {
if (c.getData() == null) throw new IllegalArgumentException("");
this(a, b, c.getOtherData());
}
public Constructor(TypeA a, TypeB b, TypeD d) {
// stuff happens
}
我该怎么做,避免,“构造函数调用必须是构造函数中的第一个语句”错误?
你不能做你想做的。 – bhspencer
而不是构造函数考虑静态工厂方法。 – bhspencer
我相信这不是一个很好的设计。 抛出IllegalArgumentException异常,表示构造函数使用不正确,这很好。但是,构造函数本身不应该处理它自己的异常。相反,调用此构造的代码应该处理它并调用其他构造函数。 – Sekkuar