2010-03-30 144 views
4

如何在Java中複製此功能?Java可變函數參數

在C#中,你可以使用關鍵字params爲函數指定變量參數列表。

你如何在Java中做到這一點?

還是你不得不求助於多個重載?

回答

9

C#代碼:

double Average(params double[] nums) { 
    var sum = 0.0; 
    foreach(var num in nums) 
    sum += num; 
    return sum/nums.Length; 
} 

等效Java代碼:

double average(double... nums) { 
    double sum = 0.0; 
    for(double num : nums) 
    sum += num; 
    return sum/nums.length; 
} 

此功能被稱爲可變參數。你可以閱讀更多關於它here

3

參數爲可變參數函數(以Java語言表示的「varargs」)作爲數組暴露給Java函數體。從Wikipedia entry的例子說明了這完美:

public static void printSpaced(Object... objects) { 
    for (Object o : objects) 
    System.out.print(o + " "); 
} 

// Can be used to print: 
printSpaced(1, 2, "three"); 
+0

+1爲可變參數功能... :) – PermGenError 2012-11-16 09:02:53

2

您可以使用...。例如:

public void foo(int... args) { 
    for (int arg : args) { 
    // do something 
    } 
} 
0

在Java中,您可以使用varargs。但這隻適用於1.5或更新版本。