`
caspers
  • 浏览: 64293 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

可变长度的参数

阅读更多
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
分享到:
评论

相关推荐

    Python中函数的可变长度参数的使用示例

    使用环境:需要先安装PyCharm(请自己百度下载安装),以及然后官网上下载Python 2.7版本,以及Python 3.7版本后,安装在自己的电脑上。...目的:帮助理解函数的可变长度参数在Python中的具体使用。

    Java中可变长度参数代码详解

    "Java中可变长度参数代码详解" Java中可变长度参数代码详解是Java语言中的一种特殊的参数传递机制,允许方法接受可变数量的参数。在Java 1.4之前,无法在Java程序中定义实参数量可变的方法,因为Java要求实参数量和...

    C51可变参数讲解.pdf

    C51可变参数函数允许程序员设计能接受不定数量参数的函数,这在C语言中是通过头文件stdarg.h提供的宏实现的。stdarg.h在Keil C51环境中也提供了对可变参数函数的支持,可以让嵌入式开发人员灵活地编写函数,以处理...

    关于java中可变长参数的定义及使用方法详解

    Java中的可变长参数(Varargs)是一种非常实用的语言特性,它允许我们在定义方法时接受一个不定数量的参数。这种特性使得我们无需为每个可能的参数组合定义单独的方法,简化了代码并提高了代码的可读性和灵活性。...

    Java中支持可变参数详解

    Java中的可变参数(Variable Argument)是Java 5引入的一项特性,它允许我们在定义方法时,接受数量可变的参数。这种机制使得方法调用更加灵活,尤其在处理不确定参数个数的情况时,大大简化了代码。下面我们将深入...

    Java中的可变参数常见用法实例总结

    Java中的可变参数常见用法实例总结 Java中的可变参数是一种特殊的参数类型,允许在方法中传递可变数量的参数。下面是Java中的可变参数常见用法实例总结: 一、可变参数的概念 在J2SE 1.4之前,Java中无法定义实参...

    java可变参数

    - **可变参数不是数组变量**:可变参数只是一个语法上的便利,它在内部会被转换为数组,但你不能直接获取到它的长度或者改变它的大小。 - **可与其他参数一起使用**:一个方法可以同时包含可变参数和其他固定参数,...

    C语言中的可变参数

    5. 可变参数列表的长度在调用时是未知的,因此需要提供一种机制(如本例中的 `count` 参数)来告诉函数应该处理多少个可变参数。 6. 调用带有可变参数的函数时,固定参数必须在运行时已知,以便正确传递信息给函数...

    Python 学习笔记(下) - 草莓君的妙妙屋1

    本篇笔记主要讨论了函数中的参数传递、形参与实参的关系、参数类型、默认值参数、可变长度参数以及一些高级特性,如序列解包、文件操作、面向对象编程、异常处理等。 1. 参数传递: 在Python中,函数调用时,实参...

    Python函数的设计和使用PPT课件.ppt

    - Python函数参数灵活多样,包括普通参数、默认值参数、关键字参数和可变长度参数。 - Python不强制指定参数类型,类型检查通常在调用时进行,这可能导致运行时错误。 7. **默认值参数**: - 默认值参数在参数...

    扩展:Java高级技术.pdf

    Java高级技术涵盖了许多重要的编程概念,这里主要讨论的是两个关键特性:可变长度参数列表(varargs)和泛型。 1. **可变长度参数列表(Varargs)** 自Java 5开始引入的可变长度参数列表允许方法接受零个或多个...

    Python数据分析及可视化-41

    Python中的函数参数可以分为四种:普通参数、默认参数、关键参数、可变长度参数。Python在定义函数时不需要指定形参的类型,完全由调用者传递的实参类型以及Python解释器的理解和推断来决定。 Python函数定义时,也...

    优质java课件 java程序设计教程(第6版)07.数组复习(共19页).ppt

    Java语言中的数组是一种重要的数据结构,它...此外,可变长度参数列表的引入增加了代码的简洁性和可读性,使得处理不定数量参数的操作更加便利。在学习Java编程的过程中,熟练掌握数组及其相关操作是至关重要的一步。

    Python中函数的参数传递与可变长参数介绍

    可变长度参数通常应放在参数列表的末尾,且`*tupleArg`在`**dictArg`之前。例如: ```python def foo(arg1, arg2="OK", *tupleArg, **dictArg): # ... ``` 如果尝试在`**dictArg`前放置`*tupleArg`,编译器将会...

    代正飞投稿1

    在Python中,函数参数的使用方式多样且灵活,包括位置参数、关键字参数、默认参数值、可变长度参数等。理解这些参数类型对于编写高效且易维护的代码至关重要。 1. **位置参数**:这是最基础的参数类型,按照函数...

    对Python强大的可变参数传递机制详解

    写着写着就发现Python可变长度参数的机制真是灵活而强大. 假设有一个元组t,包含n个成员: t=(arg1,...,argn) 而一个函数f恰好能接受n个参数: f(arg1,...,argn) f(t)这种做法显然是错的,那么如何把t的各成员作为...

    java类和对象之可变参数.docx

    数组需要在声明时指定长度,而可变参数在调用时才确定长度。此外,可变参数在方法签名中被视为单个参数,因此不会与相同类型的数组参数冲突。 5. **限制**: 一个方法只能有一个可变参数,并且它必须是方法参数...

    练习5_21

    7. 可变长度参数: - 带有一个星号(*)的参数,如`*args`,表示可变长度的普通参数列表,会将所有非关键字参数存储为一个元组。 - 带有两个星号(**)的参数,如`**kwargs`,表示可变长度的关键字参数列表,会将所有...

    怎样写一个有可变参数的函数?

    在C语言中,可变参数列表的函数是一种允许函数接收不同数量或类型的参数的机制。这种功能在处理如`printf`和`scanf`等标准库函数时非常有用。要创建一个有可变参数的函数,我们需要使用C语言的变长参数(Variable ...

Global site tag (gtag.js) - Google Analytics