【问题标题】:enumeration can not be created无法创建枚举
【发布时间】:2015-11-17 12:38:06
【问题描述】:

我正在尝试创建以下枚举,但 Eclipse 给出以下错误:

语法错误,插入“;”完成 ClassBodyDeclarations

代码:

public class SE {

    private enum Separator {
        COMMA(","),
        SEMICOLON(";"),
        COLON(":");

        private String separator;
    }

}

更新

//still receiving the same error

public class ParameterParser {

private enum Separator {

    COMMA(","),
    SEMICOLON(";"),
    COLON(":");

    private String mSeparator;

    private Separator(String separator) {
        // TODO Auto-generated method stub
        this.mSeparator = separator;
    }

    public String getSeparator() {
        return this.mSeparator;
    }
}
}

【问题讨论】:

    标签: java enums enumeration


    【解决方案1】:

    添加构造函数

    private Separator(String separator) {
        this.separator = separator;
    }
    

    【讨论】:

    • 几乎同时! ;)
    • 去掉void 关键字,如答案所示:)
    • eclipse 不允许我引入 Separator 作为构造函数,当我删除关键字 void 时,它建议改为设置 ParameterParser 的构造函数
    • 每个打开的括号都有一个对应的右括号...如我更新的第二次代码所示
    • 只需将答案粘贴到您的原始课程中即可。即让它工作 - 你可以在之后进行重构改进:)
    【解决方案2】:

    您缺少枚举的构造函数!

    private Separator (String s) {
        separator = s;
    }
    

    更新:

    public class ParameterParser {
    
        private enum Separator {
    
            COMMA(","),
            SEMICOLON(";"),
            COLON(":");
    
            private String mSeparator;
    
            private Separator(String separator) {
                this.mSeparator = separator;
            }
    
            public String getSeparator() {
                return this.mSeparator;
            }
        }
    
        public static void main(String[] args) {
            Separator comma = Separator.COMMA;
            Separator semic = Separator.SEMICOLON;
            Separator colon = Separator.COLON;
    
            System.out.println(comma + ": " + comma.getSeparator());
            System.out.println(semic + ": " + semic.getSeparator());
            System.out.println(colon + ": " + colon.getSeparator());
        }
    }
    

    此代码编译良好并输出:

    COMMA: ,
    SEMICOLON: ;
    COLON: :
    

    因此,如果您对这段代码仍然有问题,那一定是 ist!您必须向我们提供更多信息(例如,可能已经定义了分隔符,ParameterParser 类中的更多代码等)

    【讨论】:

    • eclipse 不允许我引入 Separator 作为构造函数,当我删除关键字 void 时,它建议改为设置 ParameterParser 的构造函数
    • 您还缺少一个右括号...我更新中的代码对我有用!
    • 每个打开的括号都有一个对应的结束括号...如我更新的第二次代码所示
    • 我想知道我仍然有错误..我错过了导入吗??
    • 您不必导入任何东西来创建枚举。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多