您的位置:首页 > 编程语言 > Java开发

[转]java可变长度参数

2012-12-10 09:42 225 查看



Java1.5新功能可变长方法参数-varargs

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);

以上内容摘自:
http://www.onjava.com/pub/a/onjava/excerpt/javaadn_chap5/index.html http://www.onjava.com/catalog/javaadn/excerpt/javaadn_ch05.pdf
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: