При определении AsyncTask, и это связанные методы в Android есть 3 точки, которые появляются, например, protected Long doInBackground(URL... urls)
андроид AsyncTask
Что многоточие означает?
При определении AsyncTask, и это связанные методы в Android есть 3 точки, которые появляются, например, protected Long doInBackground(URL... urls)
андроид AsyncTask
Что многоточие означает?
Это не совсем то же самое. Рассмотрим следующие примеры
Пример 1:
public String concatenateStrings(String... strings){
StringBuffer sb = new StringBuffer();
for(int i = 0; i < strings.length; i++)
sb.append(strings[i]);
return sb.toString();
}
Пример 2:
public String concatenateStrings2(String[] strings){
StringBuffer sb = new StringBuffer();
for(int i = 0; i < strings.length; i++)
sb.append(strings[i]);
return sb.toString();
}
Они Allmost идентичны, верно? Неправильно, называя их большой разницей. Первый пример позволяет добавить неопределенное количество строк.
Пример 1:
concantenateStrings("hello", "World", " I ", " can ", " add ", " so ", " many strings here");
Пример 2:
Strings[] myStrings = new Strings[7];
myStrings[0] = "Hello";
myStrings[1] = "world";
myStrings[2] = " I ";
...
myStrings[6] = " many strings here";
concatenateStrings2(myStrings);
Это не особая особенность AsynTask или Android. Это Java-функция для передачи переменной длины параметров в метод.
Посмотрите: How to create Java method that accepts variable number of arguments?
It Java понятие. Это похоже на массив. (и вы обрабатываете его в основном так же, как вы обрабатываете массив). Но в некоторых случаях это по-другому.
Вы встретите это обычно в android, например, когда вы используете view animation
или property animation
для макета.
Что это массив, ... вместо [] –
поэтому int [] numbers и int ... numbers означает то же самое? –
yup, я не уверен, почему AsyncTask делает это именно так. –