Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java의 메소드 내부에 열거형을 정의할 수 있습니까?

<시간/>

Java의 열거형은 명명된 상수 그룹을 나타내며 다음 구문을 사용하여 열거형을 만들 수 있습니다. -

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

클래스 내에서 열거할 수 있습니다. 그러나 메서드 내부에 열거형을 정의할 수는 없습니다. 그렇게 하려고 하면 "열거형 유형은 로컬이 아니어야 합니다"라는 컴파일 시간 오류가 생성됩니다.

예시

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 {
      ^
1 error

메서드 내에서 열거형 상수를 사용하려면 클래스 내에서 필요한 열거형을 선언하고 values()를 사용하여 메서드 내에서 해당 상수를 사용합니다.

예시

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();      
   }
}

출력

Value of constants:
Mango
Banana
Orange
Grapes
Thursday
Apple