我正在创建匿名数组并将其传递给声明接收变量参数字符的方法...
我想知道下面的代码如何成功运行,我传递了一个字符数组{'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);
}
}
}
答案 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}传递将被转换为传递一个匿名数组,就像你手工完成一样。