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方法写什么?
请解释..
您需要将String arg从命令行转换为枚举值.
Child c = Child.valueOf(args[0]);
Run Code Online (Sandbox Code Playgroud)
使用Enum.valueOf()
.它采用枚举类和字符串作为参数,并尝试通过该名称查找枚举.
注意:IllegalArgumentException
如果找不到则抛出...你必须明确地捕获它,因为这是一个未经检查的异常.
另一个解决方案是.valueOf()
在你的枚举类本身上使用(MyEnum.valueOf("whatever")
).与异常处理相同的警告适用.