科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道[王洪伟]Java 1.5 特性之一:可变长度的参数功能

[王洪伟]Java 1.5 特性之一:可变长度的参数功能

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

Java1.5提供了一个叫varargs的功能,就是可变长度的参数。在以前的jdk版本中,对象中一个方法的入参个数在写好后就是固定的,而varargs提供了可变长度的功能,

作者:王洪伟 来源:CSDN 2007年10月3日

关键字: 王洪伟 java 可变长度 参数

  • 评论
  • 分享微博
  • 分享邮件

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



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1809188

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章