java中变量参数和varargs功能的3个例子

116 阅读2分钟

java中的变量参数功能

可变参数特性是Java 5中引入的java语言特性之一。Java 5引入了很多新特性,如Enum特性[]等。

方法有多个参数,这些参数的数量是固定的,有了java5中的可变参数特性,方法可以有多个参数(从零到多)被传递,而不需要通过指定可变参数的语法来定义参数的数量,可变参数在方法定义中通过一个椭圆(...)来指定。

在Varargs功能之前或在Java 1.5之前:-

在Java 1.5版本之前,开发者无法选择提供的变量参数,但我们可以选择提供的变量参数。

Java有一个方法重载的功能,同一个方法可以有不同的参数版本。

Varargs特性的优点:

在编译时或运行时不需要变量声明。
客户端可以自由控制向服务API方法传递变量参数
支持以前的java版本的向后兼容。

变量参数的语法

我们必须在方法声明中声明一个DataType ...参数

public void method(DataType ... arguments)

参数后面意思是方法至少接受0个参数到多个参数

变量参数的规则

1.变量参数可以与其他普通参数组合。
2.2. 在任何方法的声明中只有一个varargs
3. 如果有varargs和普通参数的组合,varargs的声明应该在最后定义。

JVM对varargs的执行情况:

当变量参数在方法中被声明时,JVM的java编译器会加载该方法并创建一个数据类型的参数数组。

Varargs的简单例子

package com.cloudhadoop.varargs;

public class VarargsExample {

    static void print(String... words) {
        String sentence = null;
        for (String word : words) {
            sentence = sentence + word;
        }
        System.out.println(" " + sentence);
    }

    public static void main(String[] args) {
        print("Hi", "How ", "are", "You");
    }

}  

输出是:

Hi How are you  

java例子中变量参数的迭代

变量参数变量名是对参数类型数组的引用。因此我们可以使用for each循环来迭代变量参数

public class VarargsExample {
    static void print(String... words) {
        String sentence = null;
        for (String word : words) {
            sentence = sentence + word;
        }

    public static void main(String[] args) {
        print("Hi", "How ", "are", "You");
    }

}