这是以前的一个面试题,虽然当时我回答了会优先调用定长参数方法,但是自己也不确定,后面用代码验证了一下,这里也记录一下:
- 代码:
public class MethodTest {
public void sayHello(String... args) {
System.out.println("hello,可变参数!");
}
public void sayHello(String args, String str) {
System.out.println("hello,定长参数!");
}
public static void main(String[] args) {
MethodTest test = new MethodTest();
test.sayHello("param1", "param2");
}
}
- 执行结果:
hello,定长参数!
- 结论:
优先调用定长参数方法!
本文通过一个具体的Java代码示例,探讨了当方法签名相似时,Java如何选择正确的重载方法进行调用的问题。实验结果表明,Java优先选择了定长参数的方法而非可变参数的方法。
1347

被折叠的 条评论
为什么被折叠?



