Java 中如何修复“class、interface 或 enum 预期”错误?附示例


每个 Java 程序员,无论初学者还是经验丰富的开发者,在编写代码时都会遇到许多错误。通常,这些错误被归类为运行时错误和编译时错误。运行时错误发生在代码成功编译后运行时,而编译时错误则发生在编译过程中。

“class、interface 或 enum 预期”错误是在源代码编译期间抛出的错误。它可能由于多种原因导致,其中之一是花括号放置错误。在本文中,我们将探讨导致此错误的原因以及修复“class、interface 或 enum 预期”错误的相应方法。

修复 Java 中的“class、interface 或 enum 预期”错误

编译错误表明我们的代码不符合 Java 编程语言的语法规则。编译器生成的“class、interface 或 enum 预期”错误表示我们在代码中编写了一些 Java 编译器不期望的内容。

导致“class、interface 或 enum 预期”错误的原因有:

  • 花括号问题

  • 未声明类

  • 在类作用域之外定义方法

  • 包问题

让我们逐一讨论这些问题以及我们修复此错误的方法。

原因 1:花括号问题

如前所述,遇到“class、interface 或 enum 预期”错误的最常见原因是多余或放置错误的花括号。也许我们经常因为这个原因看到此错误,因为它对于程序员来说很容易漏掉括号。

由于我们需要将代码放在类、接口或枚举中,因此当我们在代码中的某个地方错误地添加了额外的花括号时,Java 编译器会期望一个类、接口或枚举。

示例 1

以下示例说明了如何通过错误放置花括号来获取错误。

public class Example1 {
   public static void main(String[] args) {
      int nums = 0;
      nums++; // incrementing the value
      System.out.println("Incremented value: " + nums);
   }
}
} // adding extra curly brace to generate the error

输出

Example1.java:8: error: class, interface, enum, or record expected
} // adding extra curly braces to generate the error
^
1 error

示例 2

以下示例说明了如何通过从代码中删除多余的花括号来修复“class、interface 或 enum”错误。

public class Example2 {
   public static void main(String[] args) {
      int nums = 0;
      nums++; // incrementing the value
      System.out.println("Incremented value: " + nums);
   }
}

输出

Incremented value: 1

原因 2:未声明类

可能会出现忘记定义类并且根本没有将代码包含在类中的情况。在这种情况下,我们可能会收到“class、interface 或 enum”错误,因为根据 Java 指南,每个代码块都必须在类中定义。因此,请确保将每个代码块都包装在类中。

原因 3:在类作用域之外定义方法

另一个可能导致此错误的原因是,当我们错误地在类作用域之外定义方法时。

示例 3

在以下示例中,我们将故意将“main()”方法放在类之外以生成错误。

public class Example3 { }
// from below lines we will get error
   public static void main(String[] args) {
      int nums = 0;
      nums++; // incrementing the value
      System.out.println("Incremented value: " + nums);
   }

输出

Example3.java:3: error: class, interface, enum, or record expected
   public static void main(String[] args) {
                 ^
Example3.java:5: error: class, interface, enum, or record expected
      nums++; // incrementing the value
      ^
Example3.java:6: error: class, interface, enum, or record expected
      System.out.println("Incremented value: " + nums);
      ^
Example3.java:7: error: class, interface, enum, or record expected
   }
   ^
4 errors

示例 4

要修复之前的错误,我们只需将“main()”方法放在类中,如示例所示。

public class Example4 {
   public static void main(String[] args) {
      int nums = 5;
      nums += 1; // incrementing the value
      System.out.println("Incremented value: " + nums);
   }
}

输出

Incremented value: 6

原因 4:包问题

当 Java 程序员在一个源代码中声明多个包时,我们可能会遇到此问题。

示例 5

在此示例中,我们将声明两个包以生成错误。

package dummy1;
package dummy2;
public class Example5 {
   public static void main(String[] args) {
      int nums = 5;
      nums += 1; // incrementing the value
      System.out.println("Incremented value: " + nums);
   }
}

输出

dummy1/Example5.java:2: error: class, interface, enum, or record expected
package dummy2;
^
1 error

示例 6

在此示例中,我们将删除其中一个已定义的包以修复“class、interface 或 enum 预期”错误。

package dummy1;
public class Example6 {
   public static void main(String[] args) {
      int nums = 5;
      nums += 1; // incrementing the value
      System.out.println("Incremented value: " + nums);
   }
}

输出

Incremented value: 6

结论

在本文中,我们了解了“class、interface 或 enum 预期”错误以及一些示例程序。此外,我们还发现了导致此错误的原因及其相应的修复方法。放置错误的花括号是所有原因中最常见的原因。

更新于:2023 年 7 月 20 日

602 次查看

启动您的 职业生涯

通过完成课程获得认证

立即开始
广告

© . All rights reserved.