2015-01-15 134 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; 
    } 
} 
相關問題