Инициализировать массив строк внутри перечисления - PullRequest
8 голосов
/ 15 апреля 2011

У меня есть Enum в Java, и каждый из его членов перечисления имеет ряд параметров.То, что я пытаюсь сделать, это сделать один из этих параметров в виде массива строк, но я не могу сделать правильную инициализацию.

Вот что я пробовал:

private static enum DialogType {
    ACCCAT("Acccat", new String[] {"acccatid"}, "acccatText", "dlg7Matchcode", "Zutritts\nkategorie", "Text"),

    private String mDialogName;
    private String[] mKeyField;
    private String mTextField;
    private String mSelectFields;
    private String mKeyFieldHeader;
    private String mTextFieldHeader;

    private DialogType(String dialogName, String[] keyField, String textField, String selectFields, String keyFieldHeader, String textFieldHeader) {
        mDialogName = dialogName;
        mKeyField = keyField;
        mTextField = textField;
        mSelectFields = selectFields;
        mKeyFieldHeader = keyFieldHeader;
        mTextFieldHeader = textFieldHeader;
    }
}

Однако я получаю массу синтаксических ошибок.Есть идеи?

Ответы [ 3 ]

14 голосов
/ 15 апреля 2011

Сделай это

public  enum DialogType {
    ACCCAT("Acccat", new String[] {"acccatid"}, "acccatText", 
           "dlg7Matchcode", "Zutritts\nkategorie", "Text");

И это должно работать. Обратите внимание на ; в конце ACCAT. Также перечисление не может быть статичным.

2 голосов
/ 15 апреля 2011

Это должно сработать - точка с запятой в конце строки ACCCAT

private static enum DialogType {

    ACCCAT("Acccat", new String[]{"acccatid"}, "acccatText", "dlg7Matchcode", "Zutritts\nkategorie", "Text");
    private String mDialogName;
    private String[] mKeyField;
    private String mTextField;
    private String mSelectFields;
    private String mKeyFieldHeader;
    private String mTextFieldHeader;

    private DialogType(String dialogName, String[] keyField, String textField, String selectFields, String keyFieldHeader, String textFieldHeader) {
        mDialogName = dialogName;
        mKeyField = keyField;
        mTextField = textField;
        mSelectFields = selectFields;
        mKeyFieldHeader = keyFieldHeader;
        mTextFieldHeader = textFieldHeader;
    }
}
1 голос
/ 15 апреля 2011
ACCCAT("Acccat", new String[] {"acccatid"}, "acccatText", "dlg7Matchcode", "Zutritts\nkategorie", "Text");

Я думаю, вам просто нужна точка с запятой в конце объявления экземпляра.

Я предполагаю, что перечисление является статическим, потому что это внутреннее перечисление чего-то?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...