Resolvendo o Erro 'Class Interface or Enum Expected'

JavaBeginner
Pratique Agora

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.