美文网首页
Java 可变长参数

Java 可变长参数

作者: pioneerz | 来源:发表于2018-03-12 18:07 被阅读22次

前言:在java 5中提供了“Varargs”机制(可变参数),也就是可以定义一个和多个实参相匹配的形参,简而言之就是可以在方法定义中使用个数不确定的参数。

Varargs的原理

java可变长参数的实现原理是通过编译器将参数列表封装成一个数组进行传递的。

Varargs的使用

先举个简单的例子:


可变长参数的用法.png
输出.png

从上图中,我们可以看到第一个调用的地方传入了6个参数,第二个调用的地方传入了5个参数,但是他都调用了一个方法,不像之前要写两个方法来匹配这些参数,这就是varargs机制的好处。同时我们也看到varargs的使用比较简单,在变量类型后面添加...就行,然后调用的时候添加自己想要添加的参数就行。这里我用了泛型,有还不要了解的小伙伴可以自行百度一下,简单的说就是可以传入不同类型的参数,你也可以进行写死,比如print(String... args),但是这样就只能传入string类型的参数了。

Varargs的使用规则

1.优先匹配固定参数
匹配.png
匹配输出.png

从图中我们可以看到,执行了固定个数参数的方法。

2.当可调用方法和两个可变长参数匹配时,编译器报错。
ambiguous.png

从上图中可以看到,编译器报错了。

3.一个方法只能有一个可变长参数且该参数只能放在最后
3.png

从图中可以看到编译器要求放在参数列表的最后一个,进而可以得出一个参数列表只能有一个可变长参数。

Varargs的使用规范

1.尽量避免带有可变长参数方法的重载,以免引起不必要的错误
2.避免null值威胁到可变长参数的方法。

具体请看这里
Varargs用起来还是蛮好的,请方便的,也解决不少代码冗余的问题。

如有什么问题,请告知,谢谢!

相关文章

  • Java变长参数

    一看到“fun(String ... strs)”就感觉写法很?,所以今天自己尝试一下,发现是一个很简单但确很实用...

  • Java 可变长参数

    前言:在java 5中提供了“Varargs”机制(可变参数),也就是可以定义一个和多个实参相匹配的形参,简而言之...

  • Java可变长参数

    定义:在方法定义中可以使用个数不确定的参数,对于同一方法可以使用不同个数的参数调用 使用:

  • java反射调用可变长度参数的方法

    在java中可以用可变长度参数,这样可以给调用者更大的灵活度,可变长度参数在编译后就是一个数组参数,不用担心可变长...

  • 【runoob.7】函数定义

    表达式作为函数体,返回类型自动推断: 无返回值的函数(类似Java中的void): 可变长参数函数 函数的变长参数...

  • Kotlin 可变长参数函数

    何为可变长参数 参数的数量不限,java中...kotlin中使用 vararg 关键字进行标识 kotlin中用法

  • 参数

    可变参数 Java声明函数是可通过int ... num 等方式声明可变长度的参数,用于传输参数个数不固定的场景,...

  • 007_scala编程详解函数入门之变长参数

    变长参数 使用序列调用变长参数 scala知识点

  • Java中的···可变长参数

    Java1.5引入。"…"必须是方法的最后一个形参,表示多个(0,1,2,…)参数,类似数组参数,使用数组传实参。...

  • 别让null值和空值威胁到变长方法

    上一建议讲解了变长参数的重载问题,本建议还会继续讨论变长参数的重载问题。上一建议的例子是变长参数的范围覆盖了非变长...

网友评论

      本文标题:Java 可变长参数

      本文链接:https://www.haomeiwen.com/subject/fptofftx.html