0

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

我想知道下面的代码将如何成功运行,我正在传递一个字符数组 {'A','B','C,'D'} 并且该方法只能接收字符......不是吗?失败并传递了错误的类型?IE; 字符数组与字符?

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);
        }

        }

}
4

2 回答 2

3

他们是一样的。Achar...是一个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);
    }
于 2013-09-26T20:36:41.557 回答
1

这将正常工作。所有 varargs 语法char...实际上都被实现为callme(char[] c),并且该方法的所有调用者只传递逗号分隔char的 s 将被转换为传递匿名数组,就像你手动做的那样。

于 2013-09-26T20:36:26.560 回答