[英]Define a String array in Java
在Java中,我們可以將main()
方法定義為這兩種方式。
public static void main(String[] args) {
System.out.println("Hello World");
}
。
public static void main(String... args) {
System.out.println("Hello World");
}
兩種方法都采用String
參數array
。 現在考慮以下情形。
String[] arr=new String[10]; // valid
String... arr=new String[10];// invalid
Java
永遠不允許這樣創建數組String... arr=new String[10];
。 但是在上述方法實現中, java
允許這樣做。 我的問題是java
在兩種情況下如何實現這兩種不同的行為?
...
是方法參數而不是變量定義的語法。 該符號的名稱是varargs ,它可以自我解釋,即可變數量的參數。
Java中的可變參數或varargs(...)用於編寫更靈活的方法,這些方法可以接受不需要初始化的任意數量的參數。
...
是指varargs及其主要目的是使方法更具可讀性 。
void method(String... args) {
}
可以稱為
method("a");
OR method("a", "b");
OR method("a", "b", "c");
我認為在變量聲明中使用它沒有意義,我們不能做太多事情
String... a = {"a", "b"}
無論如何都可以使用動態大小聲明數組
String[] arr = {"a"};
要么
String[] arr = {"a", "b"};
您可以在main
使用varargs,因為用varargs(...)聲明的方法與帶有數組參數的方法的聲明是字節碼兼容的(為了向后兼容)。 這並不意味着類型聲明可以使用相同的語法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.