语法错误:插入“枚举标识符”,插入“EnumBody”,插入“}”

时间:2012-04-03 02:37:46

标签: java eclipse enums junit syntax-error

我编写了一个枚举类型,当我为它运行我创建的JUnit测试时会出现以下语法错误:

java.lang.Error: Unresolved compilation problems: 
    Syntax error, insert "enum Identifier" to complete EnumHeaderName
    Syntax error, insert "EnumBody" to complete EnumDeclaration
    Syntax error, insert "}" to complete ClassBody

我的枚举类型具有静态函数,对于特定的String,它返回枚举常量。以下是我的枚举类型的一些代码:

public enum MusicType {

    ACCIDENTAL, LETTER, OCTAVE, REST, DUR, CHORD, TUPLET;

    public static MusicType is_accidental(String a){
        if (a=="^" | a=="_"|a=="=")
            return ACCIDENTAL;
        else return null;
    }

}

我的其余静态函数非常相似(即is_letteris_octave等),尽管有些函数使用input.matches(regex)函数而不是检查输入是否等于特别的字串。

这是JUnit测试的开始,它测试处理意外常量的函数:

public class MusicTypeTest {

    @Test
    public void accidentalTest(){
        String sharp = "^";
        String flat = "_";
        String natural = "=";
        assertEquals(MusicType.ACCIDENTAL, MusicType.is_accidental(sharp));
        assertEquals(MusicType.ACCIDENTAL, MusicType.is_accidental(flat));
        assertEquals(MusicType.ACCIDENTAL, MusicType.is_accidental(natural));
    }

}

我的JUnit测试中测试所有枚举静态函数的其他函数的编码方式相似。我无法弄清楚为什么我有这些语法错误(这是我第一次编写枚举类型)。我一直在使用Eclipse进行编码,并且还没有发现任何遗漏的“}”。我不知道这是否与我编写测试的方式或我声明变量的方式有关。有谁知道为什么我有这些语法错误?

3 个答案:

答案 0 :(得分:3)

你刚发布的枚举类型和类都有两个开括号({)和一个右括号(})。如果我不得不猜测,我会说你需要在每个文件的末尾添加一个右括号。

答案 1 :(得分:3)

我在Eclipse中遇到了同样的问题。错误的语法错误消息是由于错误的“;”在注释之后。

答案 2 :(得分:1)

我在编写Android应用时遇到此错误。我的所有括号都关闭了;我正在关注其他网站的示例。我最终为我的代码选择了整个文本,剪切,保存并粘贴代码。错误消失了。 Eclipse很可能被卡住了......