Java の main はなぜ可変長引数リストを使用しないのでしょうか? 質問する

Java の main はなぜ可変長引数リストを使用しないのでしょうか? 質問する

Java 宣言の構文について質問がありますmain

public static void main (String[] args)

メイン関数を呼び出すときに可変数の文字列を渡すことができるので、これは配列ではなく可変長の引数リストであるべきではないでしょうか? 文字列パラメータのリストを使用してこのメ​​ソッドをコマンドラインで呼び出すと、なぜ機能するのでしょうか? (文字列のリストを使用して配列を作成し、その配列をメイン メソッドに渡すバックグラウンド処理がない限り...?) メインの宣言は、次のようなものであるべきではないでしょうか...? -

public static void main(String... args) 

ベストアンサー1

main(String... args)これらはmain (String[] args)実質的に同じものです。取得するのは配列ですString。varargs は呼び出し元に対する単なる構文上の糖衣です。

main()コードから呼び出すことはないので、可変引数が導入されたときに改良されなかったのだと思います。

編集: 実際のところ、最後の文は削除してください。main(String... args)もちろん、完全に有効な構文です。2 つのスタイルは完全に互換性があります。これは問題なく動作します。

public class Test {

    public static void main(String... args) {
        System.out.println("Hello World");
    }

}

おすすめ記事