Java
 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

  1. Javaでpack()メソッドを使用できるのはいつですか?

    pack() メソッドはウィンドウで定義されています Javaのクラスであり、すべてのコンテンツが適切なサイズ以上になるようにフレームのサイズを設定します。 pack()の代替 メソッドは、 setSize()を呼び出して、フレームサイズを明示的に確立することです。 またはsetBounds() メソッド。通常、 pack()を使用します setSize()よりもメソッドを呼び出す方が望ましい パックはフレームレイアウトマネージャーにフレームサイズを任せ、レイアウトマネージャーはプラットフォームの依存関係やコンポーネントサイズに影響を与えるその他の要因にうまく適応できるためです。 構文 p

  2. JavaでinvokeLater()メソッドを呼び出すにはどうすればよいですか?

    invokeLater() メソッドは静的です SwingUtilitiesのメソッド クラスであり、タスクを非同期に実行するために使用できます。 AWT イベントディスパッチャスレッド 。 SwingUtilities.invokeLater() メソッドはSwingUtilities.invokeAndWait()のように機能します ただし、リクエストはイベントキューに配置されます そしてすぐに戻る 。 invokeLater() メソッドは、実行可能内のコードのブロックを待機しません ターゲットによって参照されます 実行します。 構文 public static void in