Синтаксическая ошибка: вставьте «enum Identifier», вставьте «EnumBody», вставьте «}» - PullRequest
4 голосов
/ 03 апреля 2012

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

Ответы [ 3 ]

3 голосов
/ 15 февраля 2018

У меня была такая же проблема с Eclipse. Неправильный синтаксис сообщения об ошибке произошел из-за неуместного ";" после аннотации.

3 голосов
/ 03 апреля 2012

Тип перечисления и класс, который вы только что опубликовали, имеют две открывающие скобки ({) и только одну закрывающую скобку (}).Если бы мне пришлось угадывать, я бы сказал, что вам нужно поставить еще одну закрывающую скобку в конце каждого из этих файлов.

1 голос
/ 06 июля 2012

Я получал эту ошибку при написании приложения для Android. Все мои скобки были закрыты; Я следовал примеру с другого сайта. В итоге я выбрал весь текст для своего кода, вырезал, сохранил и вставил код обратно. Ошибка ушла. Вполне возможно, что Eclipse застрял ...

...