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 预期”错误以及一些示例程序。此外,我们还发现了导致此错误的原因及其相应的修复方法。放置错误的花括号是所有原因中最常见的原因。
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP