所以我刚刚发现了一个我没想到的行为,我希望有人为我澄清它,因为虽然关于如何重载可变参数有很多问题,但我没有找到专门解决这个问题的问题。
有下一段代码:
public foo(Object... bar) { ... }
public foo(List<Object> bar) { ... }
然后将此foo方法称为
List<Sting> myParam = initializeWithSomething();
foo(myParam);
该varargs foo方法受到青睐,在方法执行期间将列表作为创建数组中的唯一元素。如果 Java 通常选择最具体的可能重载,这是怎么发生的?