我有一段简单的代码:
public static void arr(int i) {
System.out.println("int");
}
public static void arr(char... ch) {
System.out.println("char...");
}
public static void main(String[] args) {
arr('a');
}
当我执行这段代码时,我在控制台中得到'int'。
我知道原始类型的提升,但在我的情况下,我传递一个元素('a')的char数组,但编译器仍然选择arr(int i)方法而不是arr(char ... ch ),为什么?
也许有一个简单的算法来选择正确的方法?