java方法的可变参数用法
来源:互联网 发布:淘宝上的知名甜品店 编辑:程序博客网 时间:2024/05/23 20:21
java方法的可变参数用法:
在JavaSE5中加入了可变参数功能,用法示例为:
public void printArray(Object … args){}
参数形式变成了:类型+三个黑点+参数名
作用:
(1)可以再不知道参数个数的情况下传入对象进去。
(2)可以为应用于单个参数或多个参数。
举例说明:
public class NewVarArgs { static void printArray(Object ... args) { for(Object obj : args) { System.out.print(obj+" "); } System.out.println();} public static void main(String[] args) { printArray(new Integer(47),new Float(3.14),new Double(11.11)); printArray(47,3.14,11.11); printArray("one","two","three"); printArray(new A(),new A(),new A()); printArray((Object[])new Integer[] {1,2,3,4},(Object[])new Integer[] {1,2,3,4}); printArray(); }}
运行结果截图为:
注意一点:main方法中倒数第二条语句是将两个Integer数组作为参数传入进去,args数组接收到的是两个对象,遍历时是遍历这两个对象(而不是每个对象里的东西),所以输出是Integer在包的位置和@符号加上Integer对象的地址位置。如果把mian方法中倒数第二条语句改为printArray((Object[])new Integer[] {1,2,3,4});的话那么,传入的就是一个对象,args数组就会是一个对象(传入的那个对象),就会遍历该对象里的每一个值。所以说可变参数适合多个参数和单个参数,但一定要注意两者的区别。
扩展用法:如果将上述main方法中的最后一行printArray()方法调用改为pringArray(1,2,new Integer(3),4);时,将单一的参数列表使用了混合类型,自动包装机制将有选择的将int参数提升为Integer。
有时会有这种情况:
有两个重载函数:函数一为:public void f(float i,Charactor … args){..}
函数二为:public void f(Charactor … args){…}
如果main函数里有两个函数调用上述两个f函数时:f(1,’a’);
f(‘a’,’b’);就会产生编译错误(ComplieTimeError)
解决办法是:在某个方法中增加一个非可变参数来解决该问题。
如上例的解决办法为:将public void f(Charactor … args){…}改为public void f(char c,Charactor … args){…} 即可。
- java方法的可变参数用法
- Java方法的可变参数类型 int... i 的用法
- java 参数可变的方法
- Java方法的可变参数
- java方法的可变参数
- java 可变参数方法
- JAVA 可变参数方法
- java可变参数方法
- java 方法可变参数
- Java可变参数方法
- Java可变参数方法
- java可变参数方法
- Java方法的可变参数类型
- Java方法的可变参数类型
- Java方法的可变参数类型
- Java方法的可变参数类型
- Java方法的可变参数类型
- Java方法的可变参数类型
- Linux下jdk的安装
- jetty配置的两种方式
- activiti 工作流 动态 设置 指定 节点任务人、责任人、组 的实现方式
- Netty 4.0在Android 上的使用,长连接断线自动重连
- 大数据程序员培训 哪些才是你重点要学的?
- java方法的可变参数用法
- Log4J组件使用
- JVM内存管理机制
- 一、shiro入门知识笔记
- 第二阶段-tensorflow程序图文详解(一)Estimators
- 动态代理
- 如何定制化序列化过程
- python函数知识点整理
- 学习笔记1