我有一个使用ENUM编码不同字符串的Java程序。 现在,我添加了Main类,该类从命令行接收一些参数。 问题在于用户输入是一个字符串,但是ENUM类型是一个不同的java对象。 这里的代码:
public static void main(String[] args) {
if(args.length!=3)
{
printUsage();
System.exit(0);
}
File dbpath = new File( args[0] );
File file= new File( args[1] );
String query = args[2];
Result res = manager.executeQuery(QuerySelector.MYQUERY);
如您所见,第三个参数 query 无法匹配 executeQuery 的参数,因为它是QuerySelector而不是String。 我希望用户只需要键入“ MYQUERY”(这是一个字符串)(在这种情况下,就有不计其数),然后找到一种将其插入到executeQuery参数中的方法。 您能建议一个方便的方法吗?
答案 0 :(得分:2)
您可以在枚举中创建一个方法,以将字符串转换为相应的枚举。
public static QuerySelector forName(String query) {
for (QuerySelector param : QuerySelector.values()) {
if (query.equals(param.toString()))) {
return param;
}
}
return null;
}
然后将其用于通话
Result res = manager.executeQuery(QuerySelector.forName(query));