2010-03-30 115 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或更新版本。