这更像是一个(新手)一般编程问题,而不是特定于 Java 的挑战。如果有影响的话,它就是我的目标语言。
如何明智地处理带有在运行过程中可能有多种组合的选项的程序?
例如,假设我有一个音乐播放器命令行应用程序,可以按如下方式运行:muzak -s -v -a -i my_music_dir
*-s:随机播放
*-r:重播一次
*-v:反向播放列表
*-a:重播全部(如果 -a 和 -r 同时处于 Activity 状态,-a 会覆盖)
*-i:忽略以前播放的内容(重播文件的机会相同)
当我编写方法时,如何跟踪所有可能的选项?例如。对于具有相同起始顺序的列表,muzak -s -v my_music_dir
会生成与 muzak -v -s my_music_dir
不同的播放列表。
最佳答案
如果您不想重新发明轮子,请使用Apache Commons CLI
import org.apache.commons.cli.*;
public class Main {
public static void main(String args[]) {
Options options = new Options();
options.addOption("t", false, "display current time");
CommandLineParser parser = new DefaultParser();
try {
CommandLine cmd = parser.parse(options, args);
if(cmd.hasOption("t")) {
System.out.println("-t is set");
}
}
catch(ParseException exp) {}
}
}
关于java - 处理命令行程序中的选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40602817/