Thinking in java 之:可变参数列表
2015-09-06 10:26
337 查看
有了可变参数,就再也不用显示地编写数组语法了,当你指定参数时,编译器实际上会自动为你去填充数组,你获取的仍是一个数组,这就是为什么print()可以使用foreach来迭代该数组的原因,但是,当你传递的参数已经是一个数组的时候,编译器发现你已经是一个数组了,便不会为你做任何的转换操作,所以,如果你有一组事物,可以把它们当做列表传递,而如果你已经有了一个数组,该方法可以把它们当做可变参数列表来接受。
实例:
打印结果:
7 8 9
1 2 3 4
11 22 33 44
从打印结果看出,将0个参数传递给可变参数列表是可行的,如果可变参数列表中没有任何元素,那么转变成数组的尺寸为0。
实例:
public class OverrideVarargs { public void ArrayTest(Object... args) { for (Object o : args) System.out.print(" " + o.toString()); System.out.println(); } public static void main(String[] args) { OverrideVarargs overargs = new OverrideVarargs(); // 如果已经是一个数组,编译器不会在其上执行任何转换操作,这里强制转换成Object型数组是为了移除编译器警告信息 overargs.ArrayTest((Object[]) new Integer[] { 7, 8, 9, }); // 编译器自动会去填充数组 overargs.ArrayTest(1, 2, 3, 4); overargs.ArrayTest("11", "22", "33", "44"); overargs.ArrayTest(); } }
打印结果:
7 8 9
1 2 3 4
11 22 33 44
从打印结果看出,将0个参数传递给可变参数列表是可行的,如果可变参数列表中没有任何元素,那么转变成数组的尺寸为0。
相关文章推荐
- Java性能优化(10):谨慎改写clone
- Java父类、子类、静态成员和普通成员初始化的顺序
- java怎么解决书写啰嗦问题的
- Java I/O解读与使用实例
- Eclipse修改编码格式及字体大小
- 用Eclipse搭建Android开发环境并创建第一个Android项目(eclipse+android sdk)
- 用java写的操作数字的代码(面向过程与面向对象两种)
- Java学习之内部类
- Java创建对象实例的三种方法
- Spring MVC -- xxx conflicts with existing xxx
- java中GBK编码格式转成UTF8
- Java学习之自动装箱和自动拆箱源码分析
- poi导出中文名出现乱码或者不出现的的情况
- unicode编码转换成汉字
- Java设计模式-装饰者模式
- Java设计模式-装饰者模式
- java 几种简单排序实现代码
- Spring笔记――16.Spring与Struts整合
- Java的进程内缓存框架:EhCache
- Struts2笔记――15.Spring的事务