Introdução
O erro class, interface, or enum expected (classe, interface ou enumeração esperada) é um erro comum de tempo de compilação em Java. Ele ocorre quando há uma chave ausente, um método está fora de uma classe ou múltiplos pacotes são declarados em um único arquivo. Neste laboratório, discutiremos como resolver este erro em Java.
Criar um Arquivo Java
Crie um novo arquivo Java chamado Demo.java no diretório ~/project usando o seguinte comando:
touch Demo.java
Gerar o Erro 'Class Interface or Enum Expected'
Copie e cole o seguinte código no arquivo Demo.java:
package com.example;
public class Demo {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
public class SomeClass {
// do something
}
Salve o arquivo e execute o seguinte comando no terminal:
javac Demo.java
Você deverá ver a seguinte mensagem de erro:
Demo.java:6: error: class, interface, or enum expected
public class SomeClass {
^
1 error
Este erro indica que há uma classe extra fora da classe principal Demo.
Verificar Chaves Faltantes
Copie e cole o seguinte código no arquivo 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));
}
}
Salve o arquivo e execute o seguinte comando no terminal:
javac Demo.java
Você deverá ver a seguinte mensagem de erro:
Demo.java:7: error: ';' expected
System.out.print("The Sum is: " + (a + b));
^
1 error
Este erro indica que falta uma chave de fechamento no final do método main. Para corrigir o erro, adicione uma chave de fechamento após a instrução 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));
}
}
Salve o arquivo e execute o seguinte comando novamente:
javac Demo.java
Desta vez, o código será compilado sem erros.
Corrigir Erro de Múltiplos Pacotes
Copie e cole o seguinte código no arquivo 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));
}
}
Salve o arquivo e execute o seguinte comando no terminal:
javac Demo.java
Você deverá ver a seguinte mensagem de erro:
Demo.java:3: error: class, interface, or enum expected
package com.example.test;
^
1 error
Este erro indica que há múltiplos pacotes declarados no mesmo arquivo. Você só pode declarar um pacote por arquivo em Java. Para corrigir o erro, remova a declaração de pacote extra:
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));
}
}
Salve o arquivo e execute o seguinte comando novamente:
javac Demo.java
Desta vez, o código será compilado sem erros.
Resumo
O erro class, interface, or enum expected ocorre devido a diferentes razões, como uma chave (curly brace) ausente, um método fora de uma classe ou múltiplos pacotes em um único arquivo. Seguindo os passos deste laboratório, você deverá ser capaz de resolver este erro facilmente. Lembre-se de verificar o código em busca de chaves ausentes e certifique-se de que haja apenas uma declaração de pacote por arquivo.



