通过命令行访问枚举

Neh*_*pta -2 java enums command-line

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[]) {
    ---------------------
  }
}
Run Code Online (Sandbox Code Playgroud)

如果我必须输入命令行参数,例如.如果我输入java Test David然后它应该打印"23".

那么我们如何通过命令行访问枚举..?应该用main方法写什么?

请解释..

duf*_*ymo 6

您需要将String arg从命令行转换为枚举值.

Child c = Child.valueOf(args[0]);
Run Code Online (Sandbox Code Playgroud)


fge*_*fge 5

使用Enum.valueOf().它采用枚举类和字符串作为参数,并尝试通过该名称查找枚举.

注意:IllegalArgumentException如果找不到则抛出...你必须明确地捕获它,因为这是一个未经检查的异常.

另一个解决方案是.valueOf()在你的枚举类本身上使用(MyEnum.valueOf("whatever")).与异常处理相同的警告适用.