class WrongOverloading{
void something(String [] a){ .. }
Integer something(String... aaa){ return 1;}
}
以上代码无法编译!编译器说这些是重复的方法。 那么使用 String 数组或 String var-args 的意思完全一样吗?
它们是如何在内部实现的?
最佳答案
它们实际上是相同的,除了编译器不会接受可变参数,除非它是最后一个参数,并且它不允许您将多个参数传递给数组。
public void methodA(int... ints, int a); // doesn't compile
public void methodA(int[] ints, int a); // compiles
public void methodB(int... ints); // compiles
public void methodC(int[] ints); // compiles
methodB(1); // compiles
methodB(1,2,3,4); // compiles
methodC(1); // doesn't compile
methodC(1,2,3,4); // doesn't compile
关于java - String [] 和 String... (Var-args) 在内部工作时是否相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8754497/