junit 语法错误:插入"枚举标识符",插入"枚举正文",插入"}"

i7uq4tfw  于 2023-02-08  发布在  其他
关注(0)|答案(3)|浏览(140)

我编写了一个枚举类型,当我为它运行创建的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

我的枚举类型有静态函数,对于一个特定的字符串,返回一个枚举常量。下面是我的一些枚举类型的代码:

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中编写代码,到目前为止还没有发现任何丢失的“}“。我不知道这是否与我编写测试的方式或声明变量的方式有关。有人知道为什么我有这些语法错误吗?

hjqgdpho

hjqgdpho1#

我在Eclipse中遇到过同样的问题。这是一个误导性的语法错误消息。这是由于放错了位置“;“在注解之后。
仔细检查代码,忽略该消息。

gzszwxb4

gzszwxb42#

我在写一个安卓应用程序的时候遇到了这个错误,我所有的括号都是闭合的;我是从一个不同的网站上跟随一个例子。我最终选择了我的代码的整个文本,剪切,保存,并粘贴代码回来。错误消失了。这是很可能的Eclipse卡住了...

8mmmxcuj

8mmmxcuj3#

您刚刚发布的枚举类型和类都有两个左大括号({)和一个右大括号(}),如果要我猜的话,我会说您需要在每个文件的末尾再放一个右大括号。

相关问题