可变参数在JDK 1.5添加,刚才知道的。

以下来自《Java泛型和集合》一书。

将参数打包成一个数组传入方法中是一件让人讨厌的事,在jdk1.5中加入了一个新的功能称为vararg(动态参数),让我们来看看示例

class Lists {
public static <T> List<T> toList(T… arr) {List<T> lists = new ArrayList<T>();for(T element : arr) {lists.add(element);
}
return lists;
}
}
Lists<Integer> ints = Lists.toList(1,2,3);

我们看到”…”就表示方法接受动态参数,其实在运行时的时候,调用方法的参数,也是被打包成一个数组传入,只不过这一次是jvm帮我们做了。
所以我们也可以采用以下的方法进行调用:
Lists<Integer> ints = Lists.toList(new Integer[]{1,2,3});

不过在使用vararg功能时,需要留意的是,当方法中待传入的参数除了动态参数外,还有其它参数,则必须将动态参数方法在参数列表的最后面,例如:
public static <T> void addAll(List<T> list, T… arr);

本文转自邴越博客园博客,原文链接:http://www.cnblogs.com/binyue/p/3922468.html,如需转载请自行联系原作者

Java vararg(动态参数)的应用相关推荐

  1. java statement 动态参数_java_web学习(九) PreparedStatement动态参数的引入

    一.PreparedStatement 概述 在数据库的操作过程中,PreparedStatement 对象是一个很不起眼但是记为重要的接口对象,它继承 于Statement,并与之在两方面有所不同: ...

  2. Java 定义数组的三种方式,int...x动态参数列表

    定义数组的三种方式 以 int型 的一维数组为例,说说三种定义方式 int[] arr = new int[3]; 这是最常用的方式,定义时就含有默认值,可以后续赋值 public class Dem ...

  3. Jvm 系列(六):Java 服务 GC 参数调优案例

    本文介绍了一次生产环境的JVM GC相关参数的调优过程,通过参数的调整避免了GC卡顿对JAVA服务成功率的影响. 这段时间在整理jvm系列的文章,无意中发现本文,作者思路清晰通过步步分析最终解决问题. ...

  4. 设计模式总结——代理模式以及java的动态代理

    定义 给目标对象一个代理对象,并由代理对象控制对目标对象的引用.联想到生活中就像是海外代购 既然是代理,就说明他要做的事情要比你直接去做要做的多,这就联系到了方法的增强,也就联系到了AOP,面向切面. ...

  5. 【Groovy】Groovy 动态语言特性 ( Groovy 中函数实参自动类型推断 | 函数动态参数注意事项 )

    文章目录 前言 一.Groovy 中函数实参自动类型推断 二.函数动态参数注意事项 三.完整代码示例 前言 Groovy 是动态语言 , Java 是静态语言 ; 本篇博客讨论 Groovy 中 , ...

  6. Java 反射 不定参数bug

    Java 反射 不定参数bug 遇到的第一个关于反射的bug:java.lang.IllegalArgumentException: wrong number of arguments的问题解析如下: ...

  7. 代理模式及Java实现动态代理

    代理模式 定义:给某个对象提供一个代理对象,并由代理对象控制对于原对象的访问,即客户不直接操控原对象,而是通过代理对象间接地操控原对象. 代理模式UML图 在上图中: RealSubject 是原对象 ...

  8. OSGI 面向Java的动态模型系统

    OSGI (面向Java的动态模型系统) OSGi(Open Service Gateway Initiative)技术是Java动态化模块化系统的一系列规范.OSGi一方面指维护OSGi规范的OSG ...

  9. Dockerfile中通过ENV指定动态参数在RUN时传递参数(部署后台jar包时指定端口为例)

    场景 CentOS7中使用Dockerfile部署后台jar包: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/119818808 ...

最新文章

  1. 敏捷项目管理工具实践
  2. android按钮最底,Android:点击按钮后布局上的动画,最低SDK版本为14
  3. oracle事务处理类型,Oracle EBS-SQL (OM-5):检查订单事务处理类型.sql
  4. [Java入门笔记] Java语言基础(二):常量、变量与数据类型
  5. linux如何格式化u盘并挂载,Linux下 格式化U盘和挂载
  6. ACM试题 - 另一种阶乘问题
  7. 在window10 WSL 中编译 OpenJDK13
  8. mysql两个字段相减_MySQL 中NULL和空值的区别?
  9. 细粒度权限控制 linux,利用docker插件实现细粒度权限控制
  10. xpath中如何使用变量
  11. pg 日期和时间的运算操作
  12. 你身边有创业失败导致负债累累的案例吗
  13. 编程之美——3.1字符串移位包含问题
  14. ANDROID AIDL 1
  15. 经典!史上最全免费收录网站搜索引擎登录口
  16. Java KeyTool 的使用
  17. python第一次操作ES The client noticed that the server is not Elasticsearch and we do not support this unk
  18. 頑健なJavaプログラムの書き方
  19. python 横坐标只显示部分数据_解决echarts中横坐标值显示不全(自动隐藏)问题
  20. 长江口陆地、岛屿变迁与沙地人迁徙史.doc

热门文章

  1. 人群场景分析--Slicing Convolutional Neural Network for Crowd Video Understanding
  2. 【keras】Input 0 of layer conv2d is incompatible with the layer. expected ndim=4, found ndim=3
  3. oracle去掉blob的黑边,oracle Blob处理
  4. java连接mysql数据库增删改查_java连接mysql数据库增删改查操作记录
  5. 【每日一题】剑指 Offer 22. 链表中倒数第k个节点
  6. android代码修改excel文件格式,Android实现类似execel的表格 能回显并能修改表格内容的方法...
  7. centos7 php配置,CentOS7 下nginx与PHP的安装与配置
  8. 成都大学的计算机排名,成都除了成都大学,还有2所985、4所211,含金量很高
  9. linux挂载home分区,Linux(CentOS6) 调整 /home 挂载 分区大小
  10. php内外边距,选择器与内外边距使用方法(margin,padding使用)-2019年9月4日