Resolución del error 'Class Interface or Enum Expected'

JavaBeginner
Practicar Ahora

Introducción

El error class, interface, or enum expected es un error común en tiempo de compilación en Java. Ocurre cuando falta una llave, un método está fuera de una clase o se declaran múltiples paquetes en un solo archivo. En este laboratorio (lab), discutiremos cómo resolver este error en Java.

Crear un archivo Java

Crea un nuevo archivo Java llamado Demo.java en el directorio ~/project utilizando el siguiente comando:

touch Demo.java

Generar el error 'Class Interface or Enum Expected'

Copia y pega el siguiente código en el archivo Demo.java:

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

Guarda el archivo y ejecuta el siguiente comando en la terminal:

javac Demo.java

Deberías ver el siguiente mensaje de error:

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

Este error indica que hay una clase adicional fuera de la clase principal Demo.

Verificar si falta una llave

Copia y pega el siguiente código en el archivo 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));
    }
}

Guarda el archivo y ejecuta el siguiente comando en la terminal:

javac Demo.java

Deberías ver el siguiente mensaje de error:

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

Este error indica que falta una llave al final del método main. Para corregir el error, agrega una llave de cierre después de la declaración 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));
    }
}

Guarda el archivo y ejecuta el siguiente comando nuevamente:

javac Demo.java

Esta vez, el código se compilará sin ningún error.

Corregir el error de múltiples paquetes

Copia y pega el siguiente código en el archivo 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));
    }
}

Guarda el archivo y ejecuta el siguiente comando en la terminal:

javac Demo.java

Deberías ver el siguiente mensaje de error:

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

Este error indica que hay múltiples paquetes declarados en el mismo archivo. En Java, solo se puede declarar un paquete por archivo. Para corregir el error, elimina la declaración de paquete adicional:

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));
    }
}

Guarda el archivo y ejecuta el siguiente comando nuevamente:

javac Demo.java

Esta vez, el código se compilará sin ningún error.

Resumen

El error class, interface, or enum expected se produce por diferentes razones, como una llave faltante, un método fuera de una clase o múltiples paquetes en un solo archivo. Siguiendo los pasos de este laboratorio, deberías poder resolver este error fácilmente. Recuerda verificar el código en busca de llaves faltantes y asegúrate de que solo haya una declaración de paquete por archivo.