只要运行配置中的参数等于“-output”,下面的代码就可以工作。但是当参数为空时,编译器抛出和ArrayOutOfBoundsException。
这段代码的重点最终将是; - 在运行配置参数中写入-output时执行操作 - 如果参数为空或与-output不同,则执行其他操作
我发现很多问题看起来像这个问题。但是我一直在研究解决方案,所以我开了一个新帖子。非常感谢帮助。
...
public static void main(String[] args) {
Version_5 v5 = new Version_5("Test");
{
if(args[0].equals("-output")){
System.out.println("It works");
}
}
}
...
答案 0 :(得分:1)
你需要先检查你是否有参数,这就是全部。
if ((args.length > 0) && (args[0].equals("-output")) {
...
您也可以考虑使用参数解析库,其中有几个。
有什么额外的括号?
答案 1 :(得分:1)
如您所见,String args[]
是一个具有特定大小的数组。如果未传递参数,则大小为零。在检查args[0]
处的内容之前,请检查args的大小是否为args.length
。
if (args.length>0){
//do something
}
else if (args[0].equals("-output")){
System.out.println("It works");
}