java中方法重载时,可变参数方法和定长参数方法调用的优先级

126 阅读1分钟

这是以前的一个面试题,虽然当时我回答了会优先调用定长参数方法,但是自己也不确定,后面用代码验证了一下,这里也记录一下:

  • 代码:
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,定长参数!
  • 结论:        优先调用定长参数方法!