0
 class CmndLineArguments {

  public static void main(String[] args) {
    int length = args.length;
    if (length <= 0) {
    System.out.println("You need to enter some arguments.");
    }
   for (int i = 0; i < length; i++) {
    System.out.println(args[i]);
   }
   }
   }

command : java CmndLineArguments Mahendra zero one two three
output:
Mahendra
zero
one
two
three

このコードはどのように機能しますか? String[] args を使用しているので、 new String[]{.....} のような引数を渡すべきではないのでしょうか?

そして、このフォームと String...s フォームの違い/利点は何ですか...varargs は String[] args でゼロ以上の引数を渡すために使用されるため、ユーザー入力なしで実行することもできます(またはJava はデフォルトでいくつかの引数をサポートしますか?)

4

4 に答える 4

0

new String[]{.....} のような引数を渡すべきではないのでしょうか?

いいえ、あなたがすることはできません。その配列を宣言した後、どこからそれをメインメソッドに渡しますか?. 番号。

public static void main(String[] args)

それがプログラムの開始点であり、これらの引数jvmはコマンドラインから選択されます。

メインの公式ドキュメントより

配列内の各文字列は、コマンド ライン引数と呼ばれます。コマンドライン引数により、ユーザーはアプリケーションを再コンパイルせずにアプリケーションの操作に影響を与えることができます。たとえば、並べ替えプログラムでは、次のコマンド ライン引数を使用して、ユーザーがデータを降順で並べ替えるように指定できる場合があります。

argsそして、との違い ... args

public static void someMethod(String[] args)**

ここに引数を渡す場合、呼び出し元は配列を宣言し、配列オブジェクトをここに渡す必要があります。

public static void someMethod(String... args)

ここでは、渡すパラメータの数がわかりません。また、メソッドの呼び出し元が複数のStringオブジェクトを渡すことができます。

Varargasの公式ドキュメントはこちら

最後のパラメーターの型の後の 3 つのピリオドは、最後の引数が配列または一連の引数として渡される可能性があることを示します。可変引数は、最後の引数の位置でのみ使用できます。

于 2013-10-10T04:43:04.413 に答える