0

只要运行配置中的参数等于“-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");
            }
        }
    }
...
4

2 回答 2

1

你需要先检查你是否有论据,仅此而已。

if ((args.length > 0) && (args[0].equals("-output")) {
    ...

您也可以考虑使用一个参数解析库,其中有几个。

额外的括号有什么用?

于 2011-12-01T23:50:35.707 回答
1

如您所见,Stringargs[]是一个具有特定大小的数组。如果您不传递参数,则大小为零。在args[0]检查 args 的大小是否为args.length.

if (args.length>0){
   //do something
}
else if (args[0].equals("-output")){
   System.out.println("It works");
}
于 2011-12-01T23:51:56.770 回答