leere... params Bedeutung in java Funktions-Deklaration
Ich kam vor kurzem in einem java-snippet .Die Funktion Definitionen ein anderes format als das, was ich weiß, bis jetzt . Im folgenden sind die codes-
protected Void doInBackground(String... params) {
Log.i(TAG, "doInBackground");
//Invoke web method 'PopulateCountries' with dummy value
invokeJSONWS("dummy","PopulateCountries");
return null;
}
und eine ähnliche Funktion mit ...
im parameter
protected void onProgressUpdate(Void... values) {
Log.i(TAG, "onProgressUpdate");
}
Was bedeutet ...
bedeuten im folgenden Kontext?
- mögliche Duplikate von Was ist die Schaltfläche mit den Auslassungszeichen (...) in dieser Methode Signatur?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Android AsyncTask ist ein generischer Typ.
Wenn Sie brauchen einen async-task, der hat keinen Sinn für die Mittelstufe Fortschritt Daten, sollten Sie deklarieren es als
MyTask extends AsyncTask<Something, Void, Something>
mit der KlasseVoid
als die Spezifikation derProgress
Typ-variable, und nach der üblichen generischen Regeln, wenn Sie entscheiden, zu überschreibenonProgressUpdate
müssen Sie erklären es alsonProgressUpdate(Void... values)
.Daher
Void...
bedeutet nicht, dass alles andere als die üblichen vararg-Methode, deren Typ warVoid
.Gibt variable length argument wenn Sie möchten, rufen Sie die Methode mit dem Parameter vom Typ sagen
String
aber Sie wissen nicht, wie viele Parameter Sie übergeben möchten, können Sie diese verwenden.wie Sie übergeben eine beliebige Anzahl von
String
Methode.So können Sie rufen Sie die Methode wie diese Möglichkeiten.
für
können Sie diese Methode aufrufen, indem
und so weiter.
Können Sie mehr darüber Lesen HIER.
es genannt
varargs
, und es bedeutet eine beliebige Anzahl parameter gleichen Typs. Können Sie für den Zugriff auf das pro-index-basis, wie ein array.Den
ellipsis (...)
identifiziert eine variable Anzahl von Argumenten, undanschaulich wird das bei der folgenden summation-Methode.
Gibt es optionale Parameter, die mit Java 5.0. Nur deklarieren Sie Ihre Funktion wie folgt:
kann mit
doSomething()
oderdoSomething(true)
jetzt.Dies ist "new" in Java 1.5 und darüber hinaus (nicht unterstützt in Java 1.4 oder früher).
ist es variabler Länge Argumente