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