簡體   English   中英

將參數傳遞給Java方法

[英]Passing arguments to a Java method

我需要將參數傳遞給java方法func(String, String...) 問題是我需要將所有字符串作為參數傳遞,但它們都在ArrayList容器中。

例如:

for(...some condition...)
{
    //the other method returns an ArrayList with different size in each iteration
    ArrayList <String> values = someOtherMethod(); 
    func(values) //values is an ArrayList<String>, containing all the arguments
}

我收到一條錯誤消息,說ArrayList<String>無法轉換為String 值的大小會發生變化,因為someOtherMethod方法每次迭代都會返回一個具有不同大小的容器,因此我無法將values[0], values[1], etc作為參數傳遞。

我猜想func需要X數量的String變量,但是當容器的大小不是常數時,我不知道如何將容器轉換為X數量的變量。

“ ...”運算符接受數組,因此您可以執行以下操作:

ArrayList <String> values = someOtherMethod(); 
func(values.toArray(new String[values.size()]);

這有點復雜,因為func需要一個String ,然后是任意數量的其他Strings

List<String> values = someOtherMethod();
if (values.isEmpty()) {
    // handle special case
} else{
    func(values.get(0), values.subList(1, values.size()).toArray(new String[]));
}

我猜想func需要X數量的String變量,

我想您正在尋找Varargs。

更改功能簽名以接受

public someReturnType func(String... vargs) { }

它以可變長度的args作為參數。

然后在方法內部,您可以像訪問

  for (String currentarg: args) {

   // do something with currentarg
 } 

附帶說明:僅從版本1.5起可用。

從文檔中了解有關Varargs的更多信息

暫無
暫無

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

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