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

JDK1.5以后各版本新特性

JDK各个版本的新特性   对于很多刚接触java语言的初学者来说,要了解一门语言,最好的方式就是要能从基础的版本进行了解,升级的过程,以及升级的新特性,这样才能循序渐进的学好一门语言。今天先为...
  • ynwso
  • ynwso
  • 2015年08月03日 10:13
  • 2229

jdk1.5、1.6、1.7新特性详细介绍(整理)

jdk1.5新特性 1.泛型 2.foreach 3.自动拆箱装箱 4.枚举 5.静态导入(Static import) 6.元数据(Metadata) 7.线程池 8.Java ...
  • wlanye
  • wlanye
  • 2016年07月19日 12:58
  • 5934

Java基本数据类型数组与可变长度参数

Java基本数据类型数组与可变长度参数 Java基本数据类型数组与可变长度参数 概述 基本定义 内存 常见的两个问题 可变长度参数与数组 for循环语法糖 sun公司提供的数组工具类 参考资料 联系我...
  • jpzhu16
  • jpzhu16
  • 2016年03月06日 20:55
  • 4392

Java1.5 新特性 可变参数

Java1.5增加了新特性 可变参数:适用于参数个数不确定,类型确定的情况,java把可变参数当做数组处理...
  • Buautiful
  • Buautiful
  • 2016年07月04日 10:04
  • 153

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

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

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

一、静态导入(static import)   1、静态导入的与普通import的区别:     import语句可以导入一个类,或者包中的类;     import static 语句可以导入一个类...
  • u012634876
  • u012634876
  • 2013年10月31日 14:48
  • 728

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

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

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

可变参数---        public int add(int[] a);        public int add(int ...a);        ---可变参数相当于数组,但是上面...
  • guomeijuan916
  • guomeijuan916
  • 2012年08月14日 23:10
  • 2075

【黑马程序员】java1.5新特性-----可变参数,静态导入,高级for循环及享元设计模式

一、增强for循环 1、格式:         for(数据类型变量名 :被遍历的集合(collection)或者数组) {执行语句} 2、说明         a、对集合进行遍历。只能获取集...
  • u011079455
  • u011079455
  • 2013年12月03日 22:22
  • 540

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

---------------------- android培训、java培训、期待与您交流! ---------------------- 享元模式是构造型模式之一,通过与其他类似的对象共享相同数...
  • cds885
  • cds885
  • 2012年03月05日 21:33
  • 636
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java 1.5 特性之一:可变长度的参数功能
举报原因:
原因补充:

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