Разница между vararg и массивомJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Разница между vararg и массивом

Сообщение Anonymous »

Предположим, у меня есть такой код

Код: Выделить всё

public class HelloWorld {

public static String method1(String[] array){return ""+array.length;}
public static String method2(String... array){return ""+array.length;}

public static void main(String args[]) {
System.out.println(method1(new String[]{"test"})); //allowed
//System.out.println(method1("test")); Not allowed
System.out.println(method2(new String[]{"test"}));  //allowed
System.out.println(method2("test")); //allowed
}
}
Когда я использую javap HelloWorld

Код: Выделить всё

C:\Users\athakur\JavaProjectWorkspace\HelloWorld\bin\test>javap HelloWorld
Compiled from "HelloWorld.java"
public class test.HelloWorld extends java.lang.Object{
public test.HelloWorld();
public static java.lang.String method1(java.lang.String[]);
public static java.lang.String method2(java.lang.String[]);
public static void main(java.lang.String[]);
}
Итак, согласно файлу класса, метод1 и метод2 принимают один и тот же аргумент массива. Тогда почему разница во входных данных, которые они могут принимать?
Как метод1 не может принимать простые входные данные String, тогда как vararg может принимать переменные входные данные String как а как массив?

Подробнее здесь: https://stackoverflow.com/questions/241 ... -and-array
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»