Java vararg(动态参数)的应用
可变参数在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);
Java vararg(动态参数)的应用相关推荐
- java statement 动态参数_java_web学习(九) PreparedStatement动态参数的引入
一.PreparedStatement 概述 在数据库的操作过程中,PreparedStatement 对象是一个很不起眼但是记为重要的接口对象,它继承 于Statement,并与之在两方面有所不同: ...
- Java 定义数组的三种方式,int...x动态参数列表
定义数组的三种方式 以 int型 的一维数组为例,说说三种定义方式 int[] arr = new int[3]; 这是最常用的方式,定义时就含有默认值,可以后续赋值 public class Dem ...
- Jvm 系列(六):Java 服务 GC 参数调优案例
本文介绍了一次生产环境的JVM GC相关参数的调优过程,通过参数的调整避免了GC卡顿对JAVA服务成功率的影响. 这段时间在整理jvm系列的文章,无意中发现本文,作者思路清晰通过步步分析最终解决问题. ...
- 设计模式总结——代理模式以及java的动态代理
定义 给目标对象一个代理对象,并由代理对象控制对目标对象的引用.联想到生活中就像是海外代购 既然是代理,就说明他要做的事情要比你直接去做要做的多,这就联系到了方法的增强,也就联系到了AOP,面向切面. ...
- 【Groovy】Groovy 动态语言特性 ( Groovy 中函数实参自动类型推断 | 函数动态参数注意事项 )
文章目录 前言 一.Groovy 中函数实参自动类型推断 二.函数动态参数注意事项 三.完整代码示例 前言 Groovy 是动态语言 , Java 是静态语言 ; 本篇博客讨论 Groovy 中 , ...
- Java 反射 不定参数bug
Java 反射 不定参数bug 遇到的第一个关于反射的bug:java.lang.IllegalArgumentException: wrong number of arguments的问题解析如下: ...
- 代理模式及Java实现动态代理
代理模式 定义:给某个对象提供一个代理对象,并由代理对象控制对于原对象的访问,即客户不直接操控原对象,而是通过代理对象间接地操控原对象. 代理模式UML图 在上图中: RealSubject 是原对象 ...
- OSGI 面向Java的动态模型系统
OSGI (面向Java的动态模型系统) OSGi(Open Service Gateway Initiative)技术是Java动态化模块化系统的一系列规范.OSGi一方面指维护OSGi规范的OSG ...
- Dockerfile中通过ENV指定动态参数在RUN时传递参数(部署后台jar包时指定端口为例)
场景 CentOS7中使用Dockerfile部署后台jar包: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/119818808 ...
最新文章
- 敏捷项目管理工具实践
- android按钮最底,Android:点击按钮后布局上的动画,最低SDK版本为14
- oracle事务处理类型,Oracle EBS-SQL (OM-5):检查订单事务处理类型.sql
- [Java入门笔记] Java语言基础(二):常量、变量与数据类型
- linux如何格式化u盘并挂载,Linux下 格式化U盘和挂载
- ACM试题 - 另一种阶乘问题
- 在window10 WSL 中编译 OpenJDK13
- mysql两个字段相减_MySQL 中NULL和空值的区别?
- 细粒度权限控制 linux,利用docker插件实现细粒度权限控制
- xpath中如何使用变量
- pg 日期和时间的运算操作
- 你身边有创业失败导致负债累累的案例吗
- 编程之美——3.1字符串移位包含问题
- ANDROID AIDL 1
- 经典!史上最全免费收录网站搜索引擎登录口
- Java KeyTool 的使用
- python第一次操作ES The client noticed that the server is not Elasticsearch and we do not support this unk
- 頑健なJavaプログラムの書き方
- python 横坐标只显示部分数据_解决echarts中横坐标值显示不全(自动隐藏)问题
- 长江口陆地、岛屿变迁与沙地人迁徙史.doc
热门文章
- 人群场景分析--Slicing Convolutional Neural Network for Crowd Video Understanding
- 【keras】Input 0 of layer conv2d is incompatible with the layer. expected ndim=4, found ndim=3
- oracle去掉blob的黑边,oracle Blob处理
- java连接mysql数据库增删改查_java连接mysql数据库增删改查操作记录
- 【每日一题】剑指 Offer 22. 链表中倒数第k个节点
- android代码修改excel文件格式,Android实现类似execel的表格 能回显并能修改表格内容的方法...
- centos7 php配置,CentOS7 下nginx与PHP的安装与配置
- 成都大学的计算机排名,成都除了成都大学,还有2所985、4所211,含金量很高
- linux挂载home分区,Linux(CentOS6) 调整 /home 挂载 分区大小
- php内外边距,选择器与内外边距使用方法(margin,padding使用)-2019年9月4日