IDE在花括号后需要分号

时间:2016-08-09 13:58:09

标签: java parameters interface

我有这个带参数化接口的代码:

public enum CLIError implements IUIErrorEnum<CLIError>, IErrorEnum<CLIError> {
    @Override
    public ReaderType getType() {
        return ReaderType.CLI;
    }

为什么IDE期望&#34 ;;&#34;在返回getType()的Type(ReaderType)之后?

IDE放置了&#34 ;;&#34;在课程开始之后:

public enum CLIError implements IUIErrorEnum<CLIError>, IErrorEnum<CLIError> {
;
    @Override

为什么IDE(在本例中为Eclipse)生成&#34 ;;&#34;在Enum声明之后并显示&#34;期望&#34 ;;&#34;在返回类型之后而不是&#34;缺少成员&#34;?

2 个答案:

答案 0 :(得分:2)

您正在声明一个枚举,而不是一个类,因此编译器希望在开头看到枚举元素。这些元素应以,分隔,并以;

结尾
public enum CLIError implements IUIErrorEnum<CLIError>, IErrorEnum<CLIError> {
    ELEMENT_1,
    ELEMENT_2,
    LAST_ELEMENT;

    @Override
    public ReaderType getType() {
        return ReaderType.CLI;
    }
}

即使您没有声明任何枚举元素,;也是必需的。

请注意,如果您未在枚举中声明方法,则可以省略;

public enum CLIError {
    // compiles without ;
}

public enum CLIError {
    ELEMENT_1,
    ELEMENT_2,
    LAST_ELEMENT
    // compiles without ;
}

答案 1 :(得分:1)

您定义了enum。在enum中,您必须在定义任何方法之前定义枚举常量。如果你没有定义任何常量,你必须在那里放一个分号。

这就是如何为Java定义枚举的语法,请参阅Java语言规范的section 8.9