动力节点首页 全国咨询热线:400-8080-105

绑定手机号,登录
手机号

验证码

微信登录
手机号登录
手机号

验证码

微信登录与注册
微信扫码登录与注册

扫码关注微信公众号完成登录与注册
手机号登录
首页 > 文章

源码解析Java可变参数

05-27 11:06 648浏览
举报 T字号
  • 大字
  • 中字
  • 小字

Java可变参数是Java1.5版本时就有的一个特性,很对时候我们也在使用,只是没有感觉到而已。这里所说的可变参数,主要是说函数(或者叫方法)中参数的数量可以变化,可以有一个或者多个,甚至是零个。

可变参数函数的声明很简单,对于不定参数部分用“...”表示即可。但是实现原理可以看到,第一个的参数的地址是必须提供的,也就是可变参数必须至少包含一个参数,这个参数用来寻址,实现对所有参数的访问。

当然通常也会在对第一个参数进行一些特殊处理以方便函数的实现,比如强制指定为参数个数,或者像printf一样使用格式占位符来。

接下来我们通过文字结合代码的方式来介绍它。

可变参数的函数原型:

type function(paramType...  params)

这里的type表示函数返回类型,paramType表示函数的参数类型,它们可以是任意类型。比如基本类型或者引用类型,甚至是泛型也可以。

param表示参数名称,它是一个数组,它的长度就是调用function方法时传入的参数数量。如果没有参数传入,它的长度为0。它中的元素就是传入的参数,参数在数组中的存放顺序与传入元素的顺序相同,从下标0开始依次递增。

接下来我们通过实际的代码演示一下:

  • 首先定义一个可以参数的函数,函数的功能就是输出参数中的每个成员。
  public static void func(int... values) {
    if(values != null && values.length !=0) {
      for(int i: values) {  //使用遍历数组的方法打印每一个参数
        System.out.print(" "+i);
      }
    }else {
      System.out.print(" there is not any params");
    }
  }
  • 然后在main函数中调用该函数,调用时转入了不同数量的参数。
public static void main(String[] args) {
    func(1,2,4,6,7,9,0,33,55,99);
    System.out.println();

    int[] arr = {4,5,6,7,8,9};
    func(arr);
    System.out.println();

    func();
}

下面是程序的运行结果,从运行结果中可以看到,它把传入的参数都打印出来了,而我们使用的打印方法就是遍历数组:

 1 2 4 6 7 9 0 33 55 99
 4 5 6 7 8 9
 there is not any params

相对于可变参数,指定参数的函数实现很简单,通过通过指定的参数名访问就行了,在这里我们就不过多的介绍了,想继续学习的小伙伴可以到动力节点在线观看相关的视频课程。 

0人推荐
共同学习,写下你的评论
0条评论
代码小兵124
程序员代码小兵124

99篇文章贡献336699字

相关课程 更多>

作者相关文章更多>

推荐相关文章更多>

Java面试题及答案整理

提枪策马乘胜追击04-21 20:01

Spring常见面试题

代码小兵92504-17 16:07

Java零基础实战项目——五子棋

代码小兵98804-25 13:57

Java string类详解

杨晶珍05-11 14:54

6道经典算法面试题

杨晶珍05-12 16:39

发评论

举报

0/150

取消