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.