解决 Class Interface 或 Enum Expected 错误

JavaJavaBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("`Java`")) -.-> java/BasicSyntaxGroup(["`Basic Syntax`"]) java(("`Java`")) -.-> java/ProgrammingTechniquesGroup(["`Programming Techniques`"]) java(("`Java`")) -.-> java/ObjectOrientedandAdvancedConceptsGroup(["`Object-Oriented and Advanced Concepts`"]) java(("`Java`")) -.-> java/FileandIOManagementGroup(["`File and I/O Management`"]) java(("`Java`")) -.-> java/ConcurrentandNetworkProgrammingGroup(["`Concurrent and Network Programming`"]) java/BasicSyntaxGroup -.-> java/identifier("`Identifier`") java/ProgrammingTechniquesGroup -.-> java/scope("`Scope`") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/classes_objects("`Classes/Objects`") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/packages_api("`Packages / API`") java/FileandIOManagementGroup -.-> java/files("`Files`") java/FileandIOManagementGroup -.-> java/create_write_files("`Create/Write Files`") java/ConcurrentandNetworkProgrammingGroup -.-> java/working("`Working`") subgraph Lab Skills java/identifier -.-> lab-117393{{"`解决 Class Interface 或 Enum Expected 错误`"}} java/scope -.-> lab-117393{{"`解决 Class Interface 或 Enum Expected 错误`"}} java/classes_objects -.-> lab-117393{{"`解决 Class Interface 或 Enum Expected 错误`"}} java/packages_api -.-> lab-117393{{"`解决 Class Interface 或 Enum Expected 错误`"}} java/files -.-> lab-117393{{"`解决 Class Interface 或 Enum Expected 错误`"}} java/create_write_files -.-> lab-117393{{"`解决 Class Interface 或 Enum Expected 错误`"}} java/working -.-> lab-117393{{"`解决 Class Interface 或 Enum Expected 错误`"}} end

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

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

您可能感兴趣的其他 Java 教程