Java数组语法替代

前端之家收集整理的这篇文章主要介绍了Java数组语法替代前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
参见英文答案 > 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的最后一句话.

猜你在找的Java相关文章