gpt4 book ai didi

java - 在其他指令之后从构造函数调用另一个构造函数

转载 作者:行者123 更新时间:2023-11-29 06:58:19 25 4
gpt4 key购买 nike

我有 2 个构造函数,接受不同类型的参数:

public Board(String s) {

// the string is parsed to an int array.
int[] array = doSomething(s);

this(array);
}

public Board(int[] array) {
doSomethingElse(s);
}

但是在第一个构造函数上我得到“构造函数调用必须是构造函数中的第一个语句”。有没有办法让一个构造函数在执行其他操作后调用另一个构造函数,或者这仅仅是 Java 的限制?

最佳答案

不,您不能在另一个构造函数中执行其他操作后调用构造函数。构造函数是Java中非常特殊的方法。但是,您有两个选择:

1。如果在调用另一个构造函数之前你要做的只是预处理参数,你可以这样写:

public Board(String s) {
this(doSomething(s));
}

private static int[] doSomething(String s) {...}

您可以调用任何静态方法并将它们的结果传递给另一个构造函数。

2。如果您的预处理意味着修改当前对象,那么您不能使用静态方法执行此操作,您可以调用特殊方法(如来自两个构造函数的 init()):

public Board(String s) {
int[] array = doSomething(s);

init(array);
}

public Board(int[] array) {
init(array);
}

private void init(int[] array) {
// do something else
}

关于java - 在其他指令之后从构造函数调用另一个构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30140352/

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