解决 Class Interface 或 Enum Expected 错误

JavaBeginner
立即练习

介绍

class, interface, or enum expected 错误是 Java 中常见的编译时错误。当缺少大括号、方法在类外部定义,或在单个文件中声明了多个包时,通常会发生此错误。在本实验中,我们将讨论如何在 Java 中解决此错误。

创建一个 Java 文件

~/project 目录下使用以下命令创建一个名为 Demo.java 的新 Java 文件:

touch Demo.java

生成 'Class Interface 或 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 中,每个文件只能声明一个包。要修复此错误,请删除多余的包声明:

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 错误可能由多种原因引起,例如缺少大括号、方法定义在类外,或者单个文件中存在多个包声明。通过本实验中的步骤,你应该能够轻松解决此错误。记得检查代码中是否有缺失的大括号,并确保每个文件中只有一个包声明。