我刚刚测试了以下场景,两个功能:
// method A
private void make(Object ...objects ){
System.out.println("varargs make");
}
// method B
private void make(){
System.out.println("non varargs make");
}
随叫随到make()
。
如果代码中只有这两种方法中的一种,那么它就是被调用的方法。但是,当两种方法都存在时,仅调用方法 B。
我还有两个理论问题和一个实际问题..
1)是什么让编译器“偏爱” B 到 A ?
2)这是故意(标准)还是编译器实现的结果?
3)有没有办法“强制”编译器调用方法 A ?