gpt4 book ai didi

java - 抛出异常然后调用构造函数?

转载 作者:搜寻专家 更新时间:2023-10-31 19:32:39 25 4
gpt4 key购买 nike

所以我正在构建一个主要供个人使用的测试库,但我有一个问题。

对于 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
}

我该怎么做才能避免“构造函数调用必须是构造函数中的第一个语句”错误?

最佳答案

你不能用构造函数做你想做的事。而是使用这样的静态工厂方法:

public static TypeThing buildMyThing(TypeA a, TypeB b, TypeC c) {
if (c.getData() == null) throw new IllegalArgumentException("");
return new TypeThing(a, b, c.getOtherData());
}

public Constructor(TypeA a, TypeB b, TypeD d) {
// stuff happens
}

关于java - 抛出异常然后调用构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31385110/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com