通过命令行访问枚举
这个问题在这里已经有了答案:
您需要将String arg从命令行转换为枚举值。
Child c = Child.valueOf(args[0]);
使用Enum.valueOf()
。 它需要一个枚举类和字符串作为参数,并试图通过该名称找到一个枚举。
注意:如果未找到,则抛出IllegalArgumentException
...您必须明确地捕获它,因为这是一个未经检查的异常。
另一种解决方案是在你的枚举类本身上使用.valueOf()
( MyEnum.valueOf("whatever")
)。 与异常处理相同的警告适用。
解决方案:
public enum Child {
David(23),
Johnson(34),
Brackley(19);
private int age;
private Child(int age) {
this.age=age;
}
int getAge(){
return age;
}
public static Child getAgeFromName(String name) {
for(Child child : Child.values()) {
if(child.toString().equalsIgnoreCase(name)) {
return child;
}
}
return null;
}
public static void main(String[] args) {
if(args.length != 0) {
Child child = Child.getAgeFromName(args[0]);
if(child != null) {
System.out.println(args[0] + " age is " + child.getAge());
}else {
System.out.println("No child exists with name " + args[0]);
}
} else {
System.out.println("please provide a child name");
}
}
}
输入输出
java儿童大卫:大卫年龄是23岁
java儿童山姆:没有孩子与山姆名称存在
java孩子:请提供一个孩子的名字
希望这能解决你的问题
链接地址: http://www.djcxy.com/p/38087.html