2012-02-12 2 views
0

При определении AsyncTask, и это связанные методы в Android есть 3 точки, которые появляются, например, protected Long doInBackground(URL... urls)андроид AsyncTask

Что многоточие означает?

+1

Что это массив, ... вместо [] –

+0

поэтому int [] numbers и int ... numbers означает то же самое? –

+0

yup, я не уверен, почему AsyncTask делает это именно так. –

ответ

3

Это не совсем то же самое. Рассмотрим следующие примеры

Пример 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); 
0

It Java понятие. Это похоже на массив. (и вы обрабатываете его в основном так же, как вы обрабатываете массив). Но в некоторых случаях это по-другому.

Вы встретите это обычно в android, например, когда вы используете view animation или property animation для макета.

Смежные вопросы