Deelazee
Deelazee

Reputation: 513

Initialize an array of Strings inside an enum

I have an Enum in Java and each of its enumeration members have a number of parameters. What I am trying to do is make one of these parameters as an array of Strings but I can't seem to be able to make the correct initialization.

Here's what I've tried:

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;
    }
}

However, I am getting a ton of syntactic errors. Any ideas?

Upvotes: 8

Views: 12468

Answers (3)

Tim Sparg
Tim Sparg

Reputation: 3304

This should do the trick - Semicolon at the end of the ACCCAT line

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;
    }
}

Upvotes: 2

Jeff Foster
Jeff Foster

Reputation: 44706

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

I think you just want a semi-colon at the end of the instance declaration.

I presume the enum is static because it's an inner enum of something?

Upvotes: 1

Heiko Rupp
Heiko Rupp

Reputation: 30934

Make that

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

And it should work. Note the ; at the end of the ACCAT. Also the enum can't be static.

Upvotes: 14

Related Questions