Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

เราสามารถประกาศ Enum ภายใน Method ใน Java ได้หรือไม่

คำตอบ: ไม่ได้

Java ไม่อนุญาตให้ประกาศ enum ภายใน Method (Local Enum) จะเกิด Compile Error: enum types must not be local

ตัวอย่างที่ผิด

public class EnumExample {
    public void sample() {
        enum Vehicles { Activa125, Activa5G, Access125, Vespa, TVSJupiter; }
    }
}
EnumExample.java:3: error: enum types must not be local
    enum Vehicles {
    ^

วิธีแก้: ประกาศ Enum ใน Class Level

public class EnumerationExample {
    enum Enum { Mango, Banana, Orange, Grapes, Thursday, Apple }

    public void testMethod() {
        Enum[] constants = Enum.values();
        System.out.println("Value of constants:");
        for (Enum d : constants) System.out.println(d);
    }

    public static void main(String args[]) {
        new EnumerationExample().testMethod();
    }
}

ผลลัพธ์

Value of constants:
Mango
Banana
Orange
Grapes
Thursday
Apple

สรุป

  • Enum ต้องประกาศที่ Class Level (Member Enum) หรือ Top-level
  • ไม่สามารถประกาศใน Method, Constructor, Block ได้
  • ใช้ EnumClass.values() เพื่อเข้าถึง constants ใน Method