Java可变参数

简介: 从JDK1.5之后,java就提供了变长参数(variable arguments,varargs)。我们在定义方法的时候,可以使用不确定个数的参数

1.可变参数的定义

从JDK1.5之后,java就提供了变长参数(variable arguments,varargs)。我们在定义方法的时候,可以使用不确定个数的参数。对于同一个方法,也可以通过不确定参数个数的方式进行重载。首先来看个最简单的例子:

public void printArray(String... args) {
    for(int i=0; i<args.length; i++) {
        System.out.print(args[i] + " ");
    }
}

在main方法里调用此方法,例如:

printArray("hello","world");

这个时候控制台会打印出hello world!以上就是可变参数最简单的应用方式。


2.如果某一方法被调用的时候,既能与固定参数个数的方法match,也能与被重载的有可变参数的方法match,那么优先调用固定参数个数的方法。


3.每个方法最多一个变长参数,并且该参数的位置是方法的的最后

4.注意不能让调用的方法可以与两个可变参数匹配

理解起来也不是很复杂,大家看如下示例代码

微信图片_20211203004819.png

5.实质:编译器会把这最后一个可变参数转化为一个数组形参,可变参数是兼容数组类参数的,但是数组类参数却无法兼容可变参数。

6.main方法的参数就是一个数组类型的,那么它其实也是可以改成不定参数类型

public static void main(String... args) {
    System.out.println(add(1,3));
}
public static int add(int n,int...s){
    for (int i = 0; i < s.length; i++) {
        n=n+s[i];
    }
    return n;
}


相关文章
|
6月前
|
Java API
JAVA可变参数 ( IDEA演示 )
在 Java 5 中提供了变长参数,允许在调用方法时传入不定长度的参数,本质上还是基于数组的实现在定义方法时,在最后一个形参后加上三点 …,就表示该形参可以接受多个参数值,多个参数值被当成数组传入。可变参数格式:可变参数作用: 输出结果:一个形参列表中可变参数只能有一个 可变参数必须放在形参列表的最后面ArrayList工具类有一个静态方法: public static List asList(T…a){},对返回集合不能进行增删,可以修改 List接口有一个静态方法: public stat
31 0
|
4月前
|
存储 Java
从零开始学习 Java:简单易懂的入门指南之可变参数及Collections类(二十五)
从零开始学习 Java:简单易懂的入门指南之可变参数及Collections类(二十五)
|
9月前
|
Java
Java 可变参数(详细使用)
Java 可变参数(详细使用)
47 0
|
5月前
|
存储 Java
Java之可变参数和Collections的详细解析
1. 可变参数 在JDK1.5之后,如果我们定义一个方法需要接受多个参数,并且多个参数类型一致,我们可以对其简化. 格式: 修饰符 返回值类型 方法名(参数类型... 形参名){ } 底层:
30 0
|
8月前
|
Java
Java可变参数
Java可变参数
23 0
|
10月前
|
Java C语言
【Java】可变参数
【Java】可变参数
53 0
|
10月前
|
Java
【JavaSE】Java基础语法(三十一):可变参数
1. 可变参数 可变参数介绍 可变参数又称参数个数可变,用作方法的形参出现,那么方法参数个数就是可变的了 方法的参数类型已经确定,个数不确定,我们可以使用可变参数
|
12月前
java202303java学习笔记第三十三天可变参数1
java202303java学习笔记第三十三天可变参数1
28 0
|
12月前
java202303java学习笔记第三十三天可变参数2
java202303java学习笔记第三十三天可变参数2
33 0
java202302java学习笔记第五天-可变参数
java202302java学习笔记第五天-可变参数
51 0
java202302java学习笔记第五天-可变参数