變數參數方法(varargs) 允許您傳遞任意數量的參數到一個方法。但是,當將數組作為參數傳遞給 varargs 方法時,它可能不會按預期運行,因為數組被視為單一參數,而不是單獨的參數。
In Java 中,可變參數參數是在資料類型後使用省略號(...) 宣告的,就像myFormat 方法中的String ... args 一樣。此語法表示方法簽章中的最後一個參數可以接受一個或多個指定類型的參數。
class A { private String extraVar; public String myFormat(String format, Object ... args){ return String.format(format, extraVar, args); } }
在此範例中, myFormat 方法採用可變數量的參數。但是,當呼叫 String.format(format, extraVar, args) 時,args 陣列將被視為單一參數,而不是單獨的參數。
既然你想要args 中的每個元素都作為單獨的參數傳遞,您可以創建一個新數組,其中包含附加的extraVar.
String[] newArgs = prepend(args, extraVar); return String.format(format, newArgs);
在這種情況下,prepend 方法將extraVar 加入args的開頭並傳回一個新數組,然後可以將其傳遞給 String.format。
使用可變參數時,需要注意一些問題mind:
以上是如何在 Java 中正確地將陣列傳遞給變數參數方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!