可扩展参数可以用数组形式传参,其实编译器是把可变参数当做数组处理的
package reflection;
public class ExtensibleParam {
/**
* 可变参数
* 可变参数必须在参数中最后的位置,所以可变参数只能有一个
* 编译器会把可变参数当做数组处理
* @param d
* @return
*/
public static double add(String s, double ... d){
return addArr(d);
}
/**
* 数组参数
* 如果该方法名称也叫add则报错,说明 跟可变参数的是一个方法
* 不同之处就是调用的时候参数的使用
* 该方法只能使用数组参数
* 可变参数的东double和double[]数组都可以
* @param dr
* @return
*/
public static double addArr(double[] dr){
double r = 0;
for (double d : dr) {
r += d;
}
return r;
}
/**
* 重载
* @return
*/
public static double add(){
return 0;
}
public static void main(String[] args) {
System.out.println(add("",1,3,4,4));
System.out.println(add("",new double[]{1,3,4,4}));
}
}