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 に答える