Java Blog

Varargs in Java einsetzen

Nicht immer wissen wir, wieviele Parameter eine Methode am Ende wirklich braucht. Java bietet uns hier die Möglichkeit, eine variable Argumentenliste (varargs) zu verwenden. Wir zeigen in diesem Tutorial, wie einfach diese eingesetzt werden kann.

Stefan 20.01.2019

Infos zum Artikel

Kategorie Java
Autor Stefan
Datum 20.01.2019

Schnelles Code-Beispiel:

public void methode(int... varargs){
    //
}

Tutorial

Die Syntax hierfür ist sehr einfach: Nach der Nennung eines beliegen Datentyps setzen wir drei Punkte und dann den Variablennamen:

public void energieLaden(double... nums){
    for(int i = 0; i < nums.length; i++){
        energie += nums[i];
    }
}

Wie man sieht, können wir in der Methode die einzelnen Werte der variablen Argumentenliste wie in einem Array mit einer Index-Nummer auswählen.

Und nun rufen wir die Methode energieLaden(double... nums) auf einem Objekt der Klasse Roboter (Beispiel) auf:

public static void main(String[] args){
    Roboter r1 = new Roboter(); // Energie: 100.0
    r1.energieLaden(5, 2.5, 2.5, 1); // Energie: 111.0
}

Dadurch, dass wir der Methode vier Werte (Argumente) übergeben, hat die Liste nums die Länge von 4.

Doch es kommt noch besser: Wir können einer Methode mit Vararg-Paramter anstatt einzelner Werte tatsächlich auch ein typkompatibles Array übergeben 😁

Roboter r1 = new Roboter();
double[] array = {3, 5}; // Array erstellen
r1.energieLaden(array); //Energie: 108.0

Die Paramterliste der Methode kann vor der Deklaration des Varargs natürlich weitere Parameter unterschiedlichen Typs haben:

public void energieLaden(String name, boolean check, double ... nums) {
//
}

Regeln für varargs

Um Varargs richtig einzusetzen, müssen folgende Regeln beachtet werden:

  • Die Varargs-Deklaration muss immer am Ende der Parameterliste stehen.
  • Daraus folgt: Es kann nur eine Vararg-Deklaration geben.
  • Die einzelnen Argumente müssen kompatibel zum deklarierten Datentyp des varargs sein.

toString() Methode

Lernen Sie hier, wie Sie die toString() Methode korrekt einsetzen

Objekte vergleichen

Was ist der Unterschied zwischen == und equals()?

Die Klasse Object

Erfahren Sie alles über die Mutter aller Klassen

FALCONBYTE.NET

Handmade with 🖤️

© 2018, 2019 Stefan E. Heller

Impressum | Datenschutz

facebook programmieren lernen twitter programmieren lernen youtube programmieren lernen