whi*_*hat 7 java arrays variadic-functions
class WrongOverloading{
void something(String [] a){ .. }
Integer something(String... aaa){ return 1;}
}
Run Code Online (Sandbox Code Playgroud)
上面的代码不能编译!编译器说这些是重复的方法.那么使用String数组或String var-args是否完全相同?
它们是如何在内部实施的?
它们实际上是相同的,除非编译器不接受varargs,除非它是最后一个参数,并且它不允许您将多个参数传递给数组.
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
869 次 |
| 最近记录: |