Computer >> Máy Tính >  >> Lập trình >> Java

Chúng ta có thể định nghĩa một enum bên trong một phương thức trong Java không?

Các bảng liệt kê trong Java đại diện cho một nhóm các hằng số được đặt tên, bạn có thể tạo một bảng liệt kê bằng cú pháp sau -

enum Days {
   SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY
}

Chúng ta có thể liệt kê bên trong một lớp. Tuy nhiên, chúng ta không thể định nghĩa một enum bên trong một phương thức. Nếu bạn cố gắng làm như vậy, nó sẽ tạo ra lỗi thời gian biên dịch nói rằng “các loại enum không được là cục bộ”.

Ví dụ

public class EnumExample{
   public void sample() {
      enum Vehicles {
         Activa125, Activa5G, Access125, Vespa, TVSJupiter;
      }
   }
}

Lỗi

EnumExample.java:3: error: enum types must not be local
      enum Vehicles {
      ^
1 error

Để sử dụng hằng số enum bên trong một phương thức, hãy khai báo enum bắt buộc bên trong một lớp và sử dụng hằng số của nó bên trong một phương thức bằng cách sử dụng giá trị ().

Ví dụ

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[]) {
      EnumerationExample obj = new EnumerationExample();
      obj.testMethod();      
   }
}

Đầu ra

Value of constants:
Mango
Banana
Orange
Grapes
Thursday
Apple