はじめに
class, interface, or enum expected エラーは、Java でよく見られるコンパイル時エラーです。中括弧が欠けている場合、メソッドがクラスの外にある場合、または単一のファイル内で複数のパッケージが宣言されている場合に発生します。この実験では、Java でこのエラーを解決する方法について説明します。
Java ファイルを作成する
次のコマンドを使用して、~/project ディレクトリに Demo.java という名前の新しい Java ファイルを作成します。
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 では、1 つのファイルにつき 1 つのパッケージしか宣言できません。エラーを修正するには、余分なパッケージ宣言を削除します。
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」エラーは、中括弧の欠落、クラスの外にメソッドがある、または単一のファイル内に複数のパッケージがあるなど、さまざまな理由で発生します。この実験の手順に従えば、このエラーを簡単に解決できるはずです。コードを確認して欠落している中括弧がないことを確認し、1 つのファイルには 1 つのパッケージ宣言のみがあることを確認するようにしてください。



