почему метод 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 main не использует переменную список аргументов длины?   -  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 объявлен в методе main. Это незаконно. Объявите x вне main.

person Koray Tugay    schedule 11.01.2015