2015-01-15 99 views
1

我正在用枚举为一些练习创建一个谜模拟程序。 以下是机器枚举的初稿,所以我没有任何具体细节。将数组作为参数传递给枚举构造函数:语法问题

问题是,我的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; 
    } 
} 
+0

我意识到,在我回答了这个问题之后,我已经在*之前回答了它。对于那个很抱歉。 – Makoto 2015-01-15 17:30:38

+0

这个问题不仅仅是关于数组初始化,而是关于传递数组作为参数。它看起来不像[数组初始化在java中]的真正重复(http://stackoverflow.com/questions/16139977/array-initialisation-in-java) – 2015-01-16 14:05:38

回答

1

您没有正确声明您的阵列。应该使用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; 
    } 
} 
相关问题