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