我有以下Java类:
public class Permutation {
...
private Permutation(int[] cycle){...} //1
private Permutation(int[] inp, int[] outp){...} //2
public Permutation(int[] array, boolean isCycle){ //3
if(isCycle){
//creation new Permutation through "1"
}
else{
//splitting on input and output arrays and
//creation new Permutation through "2"
}
}
...
}
但是当我试图实现构造函数“3”时,我编译错误。我知道,我可以使用这样的静态方法来实现这个逻辑:
public static Permutation createPermutation(int[] array, boolean isCycle){
if(isCycle){
return new Permutation(array);
}
//else branch...
}
我也知道,对this()
或super()
的调用必须是构造函数中的第一个语句。
但是我的班级中是否可以使用架构“3”(不是静态创建者或其他东西)来实现构造函数?如果有可能,我该怎么做?
UPD:它与How do I call one constructor from another in Java?不重复,因为在我的问题中,我应该在调用this()
方法之前意识到一些逻辑,这是我问题的主要部分。