Java 1.5 特性之一:可变长度的参数功能

转载 2007年10月01日 21:05:00

 

 

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

相关文章推荐

黑马程序员<Java 1.5新特性>静态导入、增强for、可变参数、自动装箱拆箱、枚举

一、静态导入(static import)   1、静态导入的与普通import的区别:     import语句可以导入一个类,或者包中的类;     import static 语句可以导入一个类...

黑马程序员_JAVA1.5新特性——可变参数

/* JDK1.5版本出现的新特性。 方法的可变参数。 在使用时注意:可变参数一定要定义在参数列表最后面。 */ class ParamMethodDemo { public static ...
  • redouba
  • redouba
  • 2013年07月07日 14:58
  • 599

Java1.5 新特性 可变参数

Java1.5增加了新特性 可变参数:适用于参数个数不确定,类型确定的情况,java把可变参数当做数组处理...

Java1.5增加了新特性:可变参数

/* Java 可变参数 Java1.5增加了新特性:可变参数:适用于参数个数不确定,类型确定的情况,java把可变参数当做数组处理。 注意:可变参数必须位于最后一项。当可变参数...

[java]jdk1.5的新特性----可变参数、增强for循环、枚举、单例模式

可变参数---        public int add(int[] a);        public int add(int ...a);        ---可变参数相当于数组,但是上面...

黑马程序员——Java1.5新特性之享元模式、增强for循环、可变参数、静态导入、自动装箱和拆箱

---------------------- android培训、java培训、期待与您交流! ---------------------- 享元模式是构造型模式之一,通过与其他类似的对象共享相同数...
  • cds885
  • cds885
  • 2012年03月05日 21:33
  • 595

JAVA JDK1.5新特性<静态带入、可变参数、增强For循环、自动装箱及自动拆箱>

一、静态导入 1、写法:         import staticjava.util.Arrays.*;//导入的是Arrays这个类中的所以静态成员。         import stat...

java1.5新特性-可变参数

本文转自:http://blog.csdn.net/justinavril/article/details/4674305 许多Java新人在看到下面的这段代码的时候,都会问一个问题:dealArr...

java JDK1.5新特性(一) [静态导入] [可变参数] [增强for] [自动装箱拆箱] [枚举]

------- android培训、java培训、期待与您交流!  ---------- 静态导入 Static import 静态导入的优缺点 可变参数 Varargs 可变参数的特点...

黑马程序员——JAVA基础之JDK1.5新特性高级for循环和可变参数

------- android培训、java培训、期待与您交流! ----------     高级for循环   格式:   for(数据类型 变量名 : 被遍历的集合(Coll...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java 1.5 特性之一:可变长度的参数功能
举报原因:
原因补充:

(最多只允许输入30个字)