2013-09-26 4 views
0

Я создаю анонимный массив и передать его в метод, который объявлен получать переменный характер аргумента ...Issue передавая массив параметр символов переменного аргумента

мне интересно, как приведенный ниже код будет я успешно передаю массив символов {'A', 'B', 'C,' D '}, и метод может принимать только символы ... не должно ли он терпеть неудачу с неверными типами? то есть; массив символов против символов?

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

'голец ...' некоторый сладкий сахар. –

ответ

1

Это будет нормально работать. Весь синтаксис varargs с char... фактически состоит в том, что он фактически реализован как callme(char[] c), и все вызывающие вызывающие этого метода, которые просто передают разделенные запятыми char s, будут преобразованы в анонимный массив, точно так же, как вы сделали рука.

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); 
    } 
Смежные вопросы