はじめに
class, interface, or enum expected
エラーは、Java でよく見られるコンパイル時エラーです。中括弧が欠けている場合、メソッドがクラスの外にある場合、または単一のファイル内で複数のパッケージが宣言されている場合に発生します。この実験では、Java でこのエラーを解決する方法について説明します。
💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください
class, interface, or enum expected
エラーは、Java でよく見られるコンパイル時エラーです。中括弧が欠けている場合、メソッドがクラスの外にある場合、または単一のファイル内で複数のパッケージが宣言されている場合に発生します。この実験では、Java でこのエラーを解決する方法について説明します。
次のコマンドを使用して、~/project
ディレクトリに Demo.java
という名前の新しい Java ファイルを作成します。
touch Demo.java
次のコードを 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 つのパッケージ宣言のみがあることを確認するようにしてください。