将数组传递给变量参数字符参数的问题

时间:2013-09-26 20:35:02

标签: java

我正在创建匿名数组并将其传递给声明接收变量参数字符的方法...

我想知道下面的代码如何成功运行,我传递了一个字符数组{'A','B','C,'D'}并且该方法只能接收字符... shouldn通过错误的类型会失败吗?即;字符数组vs字符?

public class test {


    public static void main(String[] args) {
        callme(new char[]{'A','B','C','D'});
    }

    static void callme(char... c){
        for (char ch:c){
            System.out.println(ch);
        }

        }

}

2 个答案:

答案 0 :(得分:3)

他们是一样的。 char...char[]

你也可以写

public static void main(String[] args) {
    callme('A','B','C','D');
}

static void callme(char... c){
    for (char ch : c) {
        System.out.println(ch);
    }

答案 1 :(得分:1)

这样可以正常工作。实际上char...所有的varargs语法实际上都是以callme(char[] c)实现的,并且该方法的所有调用者只是以逗号分隔的{{1}传递将被转换为传递一个匿名数组,就像你手工完成一样。