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