Powiel możliwe:
varargs and the '…' argument
Java, 3 dots in parametersCo to jest "String ..." w języku Java?
Widziałem tę definicję w moim android pliku java. Wygląda podobnie jak String []. Czy oni są inni? Dziękuję.
Powiel możliwe:
varargs and the '…' argument
Java, 3 dots in parametersCo to jest "String ..." w języku Java?
Widziałem tę definicję w moim android pliku java. Wygląda podobnie jak String []. Czy oni są inni? Dziękuję.
To składnia do zapisywania elementów tablicy jako parametr
na przykład:
public String first (String... values) {
return values[0];
}
Następnie można wywołać tę metodę z first("4","2","5","67")
javacompiler utworzy tablicę parametry same.
najpierw ("4", "2", "5", "67"), nie pierwszy (4,2,5,67) –
prawda. Z jednego powodu myślałem o liczbach całkowitych. –
varags
. Jeśli podpis metody to method(Param param, String... x)
, pobierany będzie jeden obiekt typu Param
i dowolna liczba obiektów typu String o wartości.
Istnieje kilka fajnych rzeczy, jeśli o tym:
To nic specjalnego. To tylko tablica z cukrem. Tak więc method(MyObject... o)
jest taki sam jak method(MyObject[] o)
.
Vararg musi być ostatnim parametrem na liście argumentów.
Jest taka śmieszna rzecz, która mnie ugryzła. method(MyObject... o)
można nazwać jako method()
bez błędu kompilacji. Java wewnętrznie skonwertuje wywołanie No-Arg na method(new MyObject[0])
. Tak więc bądź tego świadomy.
Jest do definiowania metody z variable number of arguments.
Jest to zmienna, zmienna liczba argumentów. W ciele metody traktujesz go jak ciąg [], ale kiedy wywołujesz metodę, możesz albo wybrać ciąg [], albo po prostu wyliczyć wartości.
void foo(String... blah) { }
void bar() {
String[] a = { "hello", "world" };
foo(a); // call with String[]
foo("hello", "world"); // or simply enumerate items
}
został wprowadzony z Java 5.
String
jest typu ciąg. String[]
to tablica łańcuchów.
to cukier składniowy o nazwie ellipsis, wprowadzony w Javie 1.5 i zaczerpnięty z C. Może być używany w definicjach metod i faktycznie taki sam jak tablica z jedną różnicą. Jeśli metoda jest zdefiniowana jako:
public void foo(String[] arg){}
należy przekazać tablicę do niego:
foo(new String[] {"a", "b"});
Jeśli metoda jest zdefiniowana jako:
public void foo(String arg){}
Można zadzwonić to albo
foo(new String[] {"a", "b"});
lub
foo("a", "b");
http://docs.oracle.com/javase/1.5.0/docs/guide/language/varargs.html – assylias
i http: // stackoverflow. com/questions/1656901/varargs-and-the-argument – assylias
... lub dowolny dobry podręcznik napisany w języku Java w ciągu ostatnich 5 lat. –