Синтаксическая ошибка: вставьте «идентификатор перечисления», вставьте «EnumBody», вставьте «}»

Я закодировал тип перечисления, который вызывает следующие синтаксические ошибки при запуске созданного для него теста 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

Мой тип перечисления имеет статический функции, которые для конкретной строки возвращают константу перечисления. Вот часть моего кода типа enum:

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_letter, is_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, которые тестируют все статические функции enum, закодированы аналогично. Я не могу понять, почему у меня эти синтаксические ошибки (я впервые кодирую тип перечисления). Я кодировал в Eclipse и пока не нашел недостающих "}". Я не знаю, связано ли это с тем, как я написал тест, или с тем, как я объявил свои переменные. Кто-нибудь знает, почему у меня возникают эти синтаксические ошибки?

5
задан Betlista 3 April 2012 в 10:30
поделиться