java中不定长参数方法与定长参数方法的重载
2015-12-03 15:59
246 查看
在一个类中定义(重载)两个方法名、返回值一样,而一个方法中传入不定长参数,另一个传入的是定长参数。当在main中调用该方法,并且传入参数满足两个方法时,会使用的是哪一个方法呢?
如代码所示,当调用add(1)时两个方法均满足,运行,结果表面调用的是定长参数的方法。
初步结论:当类中重载两个除参数(一个是定长参数,另一个是不定长参数,并且类型相同)以外都相同的方法,调用该方法,并且传入的参数两个方法都可以满足时,会优先使用定长参数方法,当发现没有定长方法时,将传入的参数转成数组以满足不定长参数方法。
public class OverLoad{ public static void add(int...a){ System.out.println("不定长参数"); } public static void add(int a){ System.out.println("定长参数"); } public static void main(String[] args) { add(1); } }
如代码所示,当调用add(1)时两个方法均满足,运行,结果表面调用的是定长参数的方法。
public class OverLoad{ public static void add(int...a){ System.out.println("不定长参数"); } /*public static void add(int a){ System.out.println("定长参数"); }*/ public static void main(String[] args) { add(1); } }接下来注释掉定长参数的方法,运行,结果表面调用的是不定长参数的方法。
初步结论:当类中重载两个除参数(一个是定长参数,另一个是不定长参数,并且类型相同)以外都相同的方法,调用该方法,并且传入的参数两个方法都可以满足时,会优先使用定长参数方法,当发现没有定长方法时,将传入的参数转成数组以满足不定长参数方法。
相关文章推荐
- 如何改变eclipse背景色 插件网站收藏
- Java之美[从菜鸟到高手演变]之字符串
- Struts2的jar问题
- Java NIO系列教程(五) 通道之间的数据传输
- Spring常用注解
- java小项目,坦克大战完整
- java学习笔记-设计模式13(享元模式)
- eclipse安装maven插件及创建webaap 项目发布
- eclipse安装maven插件及创建webaap 项目发布
- C段查询雏形之在Java中反查一个IP上的所有域名(旁站查询) 推荐
- java 向 mysql插入中文字符乱码问题解决
- java多线程学习(一)之创建线程的两种方式
- java线程一
- Spring Security通过URL模式匹配的声明式权限控制
- Java NIO系列教程(四) Scatter/Gather
- springJDBC实现查询方法二
- java学习笔记-设计模式12(组合模式)
- Java 监听机制
- Java NIO系列教程(二) Channel
- java实现lpad函数