簡體   English   中英

main(String ... s)和main(String [] s)之間有什么區別?

[英]what is the difference between main(String… s) and main(String[] s)?

class Test{
    public static void main(String... s){
        System.out.println("Hello");
    }
}

class Test{
    public static void main(String[] s){
        System.out.println("Hello");
    }
}

main()聲明的上述兩種語法有什么區別?

Java是否有任何特殊需要具有可變長度參數?

沒有區別(當您從命令行運行程序時,即主要方法用於什么)。 第一個變體出現在Java 5引入varargs之后

簡而言之,varargs允許您將可變數量的參數傳遞給方法。 對於方法體,參數被分組為一個數組。 Test.main("foo", "bar")而不是Test.main(new String[] {"foo", "bar"}) 編譯器在場景后面為您創建數組。

唯一的區別是如果直接從其他Java代碼調用main 第一種形式允許你寫:

Test.main("first", "second", "third");

而第二個需要你明確地創建一個數組:

Test.main(new String[] { "first", "second", "third" });

我個人認為我沒見過第一種形式 - 從其他代碼調用main是非常罕見的。 盡管如此,它沒有任何問題

沒有區別。

通常, String... s允許使用逗號作為分隔符傳遞參數,而String[] s需要一個數組。 但在實現中, s是兩種情況下的數組。 所以...在某種意義上說就是辛辣糖。

可變數量的參數main(String... s)僅在Java 5.0中引入。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM