<分区>
如果我有两个具有相同签名的方法,只是可变参数类型不同,当我不使用参数或传递 null 时,Java 如何知道调用哪个方法?
例如,如果我有这两种方法:
public static String test(String a, String b, Object... args){
return "object args";
}
public static String test(String a, String b, String... args){
return "string args";
}
然后我打电话:
System.out.println(test("a", "b"));
System.out.println(test("a", "b", null));
输出是“字符串参数”。为什么 Java 决定在这里调用第二种方法而不是第一种方法?我很难找到描述这一点的规范的相关部分。