[问题记录]Java关于可变参数重载问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[问题记录]Java关于可变参数重载问题相关的知识,希望对你有一定的参考价值。
突然发现java的可变参数重载是存在歧义的,只是不知道java内部是怎么处理的,特意做如下实验:
测试代码如下:
1 /** 2 * Created by ieayoio on 16-3-1. 3 */ 4 public class VarTest { 5 6 public static void aaa(int ...a){ 7 System.out.println("可变参数重载"); 8 } 9 10 public static void aaa(int a){ 11 System.out.println("非可变参数重载"); 12 } 13 public static void main(String[] args) { 14 15 } 16 }
1.在14行添加aaa();时运行结果为:
可变参数重载
Process finished with exit code 0
2.在14行添加aaa(111,111);时运行结果为:
可变参数重载
Process finished with exit code 0
3.在14行添加aaa(111);时运行结果为:
非可变参数重载
Process finished with exit code 0
4.将代码改为以下:
1 /** 2 * Created by ieayoio on 16-3-1. 3 */ 4 public class VarTest { 5 6 public static void aaa(int a){ 7 System.out.println("非可变参数重载"); 8 } 9 10 public static void aaa(int ...a){ 11 System.out.println("可变参数重载"); 12 } 13 14 public static void main(String[] args) { 15 aaa(111); 16 } 17 }
结果依然为:
非可变参数重载
Process finished with exit code 0
结论:当使用可变参数重载方法时,java内部会优先使用非可变参数方法去执行程序
原文链接:http://www.cnblogs.com/ieayoio/p/5231751.html
以上是关于[问题记录]Java关于可变参数重载问题的主要内容,如果未能解决你的问题,请参考以下文章
关于java 可变参数的问题,The method max(int[]) is ambiguous for the type test