คำตอบ: ไม่ได้
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