-1
enum Child {
    David(23),
    Johnson(34),
    Brackley(19);
  }

  int age;

  Child(int age) {
    this.age=age; 
  }

  void getAge() {
    return age; 
  }

  public class Test {
    public static void main(String args[]) {
    ---------------------
  }
}

たとえば、コマンドライン引数を入力する必要がある場合。java Test David と入力すると、「23」と出力されます。

では、コマンドラインから列挙型にアクセスするにはどうすればよいでしょうか..? mainメソッドには何を書くべきですか?

説明してください..

4

4 に答える 4

8

コマンドラインから文字列引数を列挙値に変換する必要があります。

Child c = Child.valueOf(args[0]);
于 2013-06-13T10:45:40.130 に答える
5

を使用しEnum.valueOf()ます。列挙型クラスと文字列を引数として取り、その名前で列挙型を見つけようとします。

注:IllegalArgumentException見つからない場合はスローします...これは未チェックの例外であるため、明示的にキャッチする必要があります。

別の解決策は.valueOf()、enum クラス自体で使用することです ( MyEnum.valueOf("whatever"))。例外処理と同じ警告が適用されます。

于 2013-06-13T10:45:18.217 に答える
0

次のことができます

enum Child {
   David(23),
   Johnson(34),
   Brackley(19);

 int age;

 Child(int age) {
   this.age=age; 
 }

 public int getAge() {
   return age; 
 }

   public static void main(String args[]) 
   {
       for(Child c : Child.values())
       {
               //Here you can check for you equality of name taken as command line arg
           System.out.println("Name is " + c + " and age is " + c.getAge());
       }
   }

}

出力は次のとおりです

Name is David and age is 23
Name is Johnson and age is 34
Name is Brackley and age is 19
于 2013-06-13T10:55:33.680 に答える