引用自:
Java1.5提供了一个叫varargs的功能,就是可变长度的参数。
在以前的jdk版本中,对象中一个方法的入参个数在写好后就是固定的,而varargs提供了可变长度的功能,有点类似于main方法的参数String[] args,我们在命令行运行时args可数是可变的。
一、使用varargs写法是这样的: public Guitar(String builder, String model, String... features); // 用省略号...声明features为可变长度的参数。
如果你声明如下方法:
public Guitar(String builder, String model, String... features)
编译时将被解释为:
public Guitar(String builder, String model, String[] features)
但是这样做还是有一些限制的。
在一个方法中只能使用一个省略号定义,也就是只能定义一个可变长的参数。
下面的定义是不合法的: public Guitar(String builder, String model,String... features, float ... stringHeights)
二、我们可以用下面的方法取得可变长参数:
public Guitar(String builder, String model,GuitarWood backSidesWood, GuitarWood topWood, float nutWidth,GuitarInlay fretboardInlay, GuitarInlay topInlay,String... features) { this .builder = builder; this .model = model; this .backSidesWood = backSidesWood; this .topWood = topWood; this .nutWidth = nutWidth; this .fretboardInlay = fretboardInlay; this .topInlay = topInlay; for (String feature : features) { System.out.println(feature); } }
我们也可以这样获取可变长参数值,把features直接赋给String[],或者其他集合类型
// Variable declaration private List features; // Assignment in method or constructor body this .features = java.util.Arrays.asList(features);