参见英文答案 >
What does int[]… arrays mean in Java?8个
我刚看到有人对数组使用这种替代语法,并且想知道:
我刚看到有人对数组使用这种替代语法,并且想知道:
是
public void fn(Character[]...){}
相当于
public void fn(Character[]){} //(i.e. "..." is redundant)
或者相当于
public void fn(Character[][]){}
解决方法
使用varargs,您将允许多个参数,仅使用一个2D阵列,您只允许一个参数.它们可能会产生一个2D数组,但它们的调用方式却大相径庭.
小样本:
public class Test { public static void main(String[] args){ doSomething(new char[5],new char[6]); doSomething(new char[2][3]); } private static void doSomething(char[]... args){ for(char[] s : args){ System.out.println(s.length); } } }
工作得很好:
5 6 3 3
但是,如果您只使用char [] [],第一种调用方式将无效.这就是区别.
char vs Char在这种情况下没有任何功能差异,尽管你可能想要记住this answer的最后一句话.