将数组作为参数传递给枚举构造函数:语法问题
Passing array as argument to enum constructor: syntax issues
我正在创建一个谜题模拟程序,用于一些枚举练习。
以下是机器枚举的初稿,所以我还没有任何细节。
问题是我的 IDE 一直说大括号不应该存在,此时我正在尝试将数组传递给枚举构造函数。
我的枚举构造函数或枚举常量声明有问题吗?我怎样才能更正它以使其正常工作?
public enum MACHINETYPE {
WehrmachtEnigma (4, {true, true, true, false}),
KriegsmarineM4(4, {true, true, true, true}),
Abwehr(4, {true, true, true, true});
private final int ROTORS_COUNT;
private final boolean[] STEPPING;
private MACHINETYPE(int rotors, boolean[] stepping){
ROTORS_COUNT = rotors;
STEPPING = stepping;
}
}
您没有正确声明数组。它们应该使用 new boolean[] { ... }
声明。但是,由于您的数组是构造函数的参数,因此您可以使用可变参数表示法来缩短声明。这将删除您的错误消息。
enum MACHINETYPE{
WehrmachtEnigma (4, true, true, true, false),
KriegsmarineM4(4, true, true, true, true),
Abwehr(4, true, true, true, true);
private final int ROTORS_COUNT;
private final boolean[] STEPPING;
private MACHINETYPE(int rotors, boolean... stepping){
ROTORS_COUNT = rotors;
STEPPING = stepping;
}
}
我正在创建一个谜题模拟程序,用于一些枚举练习。 以下是机器枚举的初稿,所以我还没有任何细节。
问题是我的 IDE 一直说大括号不应该存在,此时我正在尝试将数组传递给枚举构造函数。
我的枚举构造函数或枚举常量声明有问题吗?我怎样才能更正它以使其正常工作?
public enum MACHINETYPE {
WehrmachtEnigma (4, {true, true, true, false}),
KriegsmarineM4(4, {true, true, true, true}),
Abwehr(4, {true, true, true, true});
private final int ROTORS_COUNT;
private final boolean[] STEPPING;
private MACHINETYPE(int rotors, boolean[] stepping){
ROTORS_COUNT = rotors;
STEPPING = stepping;
}
}
您没有正确声明数组。它们应该使用 new boolean[] { ... }
声明。但是,由于您的数组是构造函数的参数,因此您可以使用可变参数表示法来缩短声明。这将删除您的错误消息。
enum MACHINETYPE{
WehrmachtEnigma (4, true, true, true, false),
KriegsmarineM4(4, true, true, true, true),
Abwehr(4, true, true, true, true);
private final int ROTORS_COUNT;
private final boolean[] STEPPING;
private MACHINETYPE(int rotors, boolean... stepping){
ROTORS_COUNT = rotors;
STEPPING = stepping;
}
}