защо метод varargs трябва да бъде в отделен блок в java?

Защо varargs на метода трябва да са отделни от основното тяло на метода? Кодът по-долу е правилен, но защо не мога да сложа декларация на метод varargs в тялото на основния метод?

public class TryVariableArgumentList {

    public static void main(String[] args) {
        x("first","second");

        public static void x(String... list) {
            for (String y : list)
                System.out.println(y);
        }
    }
}

person Community    schedule 11.01.2015    source източник
comment
възможен дубликат на Защо основната част на Java не използва променлива списък с аргументи за дължина?   -  person Thomas Jungblut    schedule 11.01.2015


Отговори (2)


Методът

public static void main(String... args) {
    //code
}

също е напълно законно

Проблемът с кода е, че декларацията на метод в самия метод не е разрешена в Java

Компилируемият код трябва да бъде такъв

class TryVariableArgumentList {
    public static void main(String[] args) {
        x("first","second");
    }

    public static void x(String... list) {
        for(String y : list)
            System.out.println(y);
    }
}

Мисля, че трябва да публикувате това, което сте прочели, защото може би сте изтълкували нещо неправилно

Надявам се това да помогне!

person Vihar    schedule 11.01.2015
comment
благодаря ви, промених кода си, можете ли да ми кажете защо не е компилиран? - person ; 11.01.2015
comment
Метод вътре в метод не е разрешен в Java - person Vihar; 11.01.2015
comment
Редактирах и моя отговор - person Vihar; 11.01.2015

Вашият метод x е деклариран в основния метод. Това не е законно. Декларирайте x извън main.

person Koray Tugay    schedule 11.01.2015