您的位置:首页 > 编程语言 > Java开发

[问题记录]Java关于可变参数重载问题的测试

2016-03-01 17:09 567 查看
突然发现java的可变参数重载是存在歧义的,只是不知道java内部是怎么处理的,特意做如下实验:

测试代码如下:

/**
* Created by ieayoio on 16-3-1.
*/
public class VarTest {

public static void aaa(int ...a){
System.out.println("可变参数重载");
}

public static void aaa(int a){
System.out.println("非可变参数重载");
}
public static void main(String[] args) {

}
}


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.将代码改为以下:

/**
* Created by ieayoio on 16-3-1.
*/
public class VarTest {

public static void aaa(int a){
System.out.println("非可变参数重载");
}

public static void aaa(int ...a){
System.out.println("可变参数重载");
}

public static void main(String[] args) {
aaa(111);
}
}


结果依然为:


非可变参数重载

Process finished with exit code 0



结论:当使用可变参数重载方法时,java内部会优先使用非可变参数方法去执行程序

原文链接:/article/5736523.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: