Устранение ошибки 'Class Interface or Enum Expected'

JavaBeginner
Практиковаться сейчас

Введение

Ошибка class, interface, or enum expected является распространенной ошибкой времени компиляции в Java. Она возникает, когда отсутствует фигурная скобка, метод находится вне класса или в одном файле объявлено несколько пакетов. В этом лабораторном занятии (LabEx) мы обсудим, как устранить эту ошибку в Java.

Создание Java-файла

Создайте новый Java-файл с именем Demo.java в директории ~/project с помощью следующей команды:

touch Demo.java

Создание ошибки 'Class Interface or Enum Expected'

Скопируйте и вставьте следующий код в файл Demo.java:

package com.example;
public class Demo {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}
public class SomeClass {
    // do something
}

Сохраните файл и выполните следующую команду в терминале:

javac Demo.java

Вы должны увидеть следующее сообщение об ошибке:

Demo.java:6: error: class, interface, or enum expected
public class SomeClass {
^
1 error

Эта ошибка указывает, что есть дополнительный класс вне основного класса Demo.

Проверка на отсутствие фигурной скобки

Скопируйте и вставьте следующий код в файл Demo.java:

package com.example;

public class Demo {
    public static void main(String[] args) {
        int a = 10, b = 15;
        System.out.print("The Sum is: " + (a + b));
    }
}

Сохраните файл и выполните следующую команду в терминале:

javac Demo.java

Вы должны увидеть следующее сообщение об ошибке:

Demo.java:7: error: ';' expected
        System.out.print("The Sum is: " + (a + b));
                                                  ^
1 error

Эта ошибка указывает, что в конце метода main отсутствует фигурная скобка. Чтобы исправить ошибку, добавьте закрывающую фигурную скобку после оператора print:

package com.example;

public class Demo {
    public static void main(String[] args) {
        int a = 10, b = 15;
        System.out.print("The Sum is: " + (a + b));
    }
}

Сохраните файл и выполните следующую команду еще раз:

javac Demo.java

На этот раз код скомпилируется без ошибок.

Исправление ошибки с несколькими пакетами

Скопируйте и вставьте следующий код в файл Demo.java:

package com.example;

package com.example.test;

public class Demo {
    public static void main(String[] args) {
        int a = 10, b = 15;
        System.out.print("The Sum is: " + (a + b));
    }
}

Сохраните файл и выполните следующую команду в терминале:

javac Demo.java

Вы должны увидеть следующее сообщение об ошибке:

Demo.java:3: error: class, interface, or enum expected
package com.example.test;
^
1 error

Эта ошибка указывает, что в одном файле объявлено несколько пакетов. В Java можно объявить только один пакет в каждом файле. Чтобы исправить ошибку, удалите лишнее объявление пакета:

package com.example;

public class Demo {
    public static void main(String[] args) {
        int a = 10, b = 15;
        System.out.print("The Sum is: " + (a + b));
    }
}

Сохраните файл и выполните следующую команду еще раз:

javac Demo.java

На этот раз код скомпилируется без ошибок.

Резюме

Ошибка class, interface, or enum expected возникает по разным причинам, таким как отсутствие фигурной скобки, метод вне класса или несколько пакетов в одном файле. Следуя шагам этого практического занятия (lab), вы должны быть в состоянии легко устранить эту ошибку. Не забудьте проверить код на наличие отсутствующих фигурных скобок и убедиться, что в каждом файле есть только одно объявление пакета.