Résolution de l'erreur 'Class Interface or Enum Expected'

JavaBeginner
Pratiquer maintenant

Introduction

L'erreur class, interface, or enum expected est une erreur de compilation courante en Java. Elle se produit lorsqu'il manque une accolade, qu'une méthode est située en dehors d'une classe ou que plusieurs packages sont déclarés dans un seul fichier. Dans ce lab (atelier), nous allons discuter de la manière de résoudre cette erreur en Java.

Créer un fichier Java

Créez un nouveau fichier Java nommé Demo.java dans le répertoire ~/project en utilisant la commande suivante :

touch Demo.java

Générer l'erreur 'Class Interface or Enum Expected'

Copiez et collez le code suivant dans le fichier Demo.java :

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

Enregistrez le fichier et exécutez la commande suivante dans le terminal :

javac Demo.java

Vous devriez voir le message d'erreur suivant :

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

Cette erreur indique qu'il y a une classe supplémentaire en dehors de la classe principale Demo.

Vérifier les accolades manquantes

Copiez et collez le code suivant dans le fichier 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));
    }
}

Enregistrez le fichier et exécutez la commande suivante dans le terminal :

javac Demo.java

Vous devriez voir le message d'erreur suivant :

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

Cette erreur indique qu'il manque une accolade à la fin de la méthode main. Pour corriger l'erreur, ajoutez une accolade fermante après l'instruction 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));
    }
}

Enregistrez le fichier et exécutez à nouveau la commande suivante :

javac Demo.java

Cette fois, le code sera compilé sans erreur.

Corriger l'erreur de plusieurs packages

Copiez et collez le code suivant dans le fichier 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));
    }
}

Enregistrez le fichier et exécutez la commande suivante dans le terminal :

javac Demo.java

Vous devriez voir le message d'erreur suivant :

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

Cette erreur indique qu'il y a plusieurs packages déclarés dans le même fichier. En Java, vous ne pouvez déclarer qu'un seul package par fichier. Pour corriger l'erreur, supprimez la déclaration de package supplémentaire :

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

Enregistrez le fichier et exécutez à nouveau la commande suivante :

javac Demo.java

Cette fois, le code sera compilé sans erreur.

Résumé

L'erreur "class, interface, or enum expected" se produit pour diverses raisons, telles qu'une accolade manquante, une méthode en dehors d'une classe ou plusieurs packages dans un seul fichier. En suivant les étapes de ce laboratoire (lab), vous devriez être en mesure de résoudre facilement cette erreur. N'oubliez pas de vérifier le code pour toute accolade manquante et assurez-vous qu'il n'y a qu'une seule déclaration de package par fichier.