Mit der „Variablen Parameterliste“ beliebig viele Argumente an Methoden übergeben

Bei der Entwicklung von Anwendungen ist es manchmal schwierig bereits im Vorfeld anzugeben wieviele Parameter zur Laufzeit für das Erfüllen einer bestimmten Funktionalität benötigt werden.

Diese Problematik wurde durch das Einführen der variablen Parameterliste in Java 5 gelöst.

plhq_teaser_hbox_gelb_fotolia_RA Studio_46292813

Unser großes
Android Online-Kurs
Gesamtpaket



Weitere Infos

Seitdem ist es möglich mit Hilfe der variablen Parameterliste einer Methode eine beliebige Anzahl an Argumenten zu übergeben.

Dazu wird einfach der letzte Methodenparameter, durch Anfügen von drei Punkten, als variabel gekennzeichnet. Die drei Punkte müssen direkt nach dem Datentyp und vor dem Parameternamen stehen:

int... parameter

Hinweis: In Java darf nur der letzte Methodenparameter variabel sein, da sonst der Compiler nicht eindeutig die Argumente übergeben kann.

Die Syntax der variablen Parameterliste ist in folgendem Quelltextbeispiel dargestellt:

public void methodeA (double... param)
{
   Anweisungen;
}

public void methodeB (int a, byte b, boolean... c)
{
   Anweisungen;
}

Die variable Parameterliste ist in Java als ein Array-Parameter implementiert, welcher aus den übergebenen Argumenten erstellt wird. Auf die Elemente dieses Arrays wird wie gewohnt zugegriffen.

Mit folgendem Methodenaufruf wird vom Java-Laufzeitsystem automatisch ein Array erzeugt:

methodeA(2.15, 7.45, 0.11, 8.50);

Der erzeugte Array enthält die übergebenen Argumente als Array-Elemente.

Eine variable Parameterliste vom Typ Object…

In der folgenden Beispielanwendung wird die Methode bestimmeDatentyp mit einer variablen Parameterliste definiert.

Der Methode können beliebig viele Argumente vom Datentyp Object übergeben werden.

Da der Object-Datentyp zu allen Referenz-Datentypen und auch primitiven Datentypen kompatibel ist, können der Methode bestimmeDatentyp somit beliebig viele Argumente von beliebigem Datentyp übergeben werden.

Die Methode bestimmt anschließend den Datentyp des übergebenen Arguments und gibt das Ergebnis auf der Kommandozeile aus.

Beispielanwendung für eine Variable Parameterliste

 
/*
* Beispielanwendung für eine Variable Parameterliste
*/

public class VariableParameterliste{

  public static void bestimmeDatentyp(Object... params) 
  {
    String klassenName, text;
    int i = 0;

    for (Object obj : params)
    {      
      i++;
      klassenName = obj.getClass().getSimpleName();

      switch (klassenName)
      {
        case "Boolean":
          text = "Das " + i + ". Argument ist ein logischer Datentyp";
          break;
        case "Byte":
          text = "Das " + i + ". Argument ist ein integraler Datentyp";
          break;
        case "Character":
          text = "Das " + i + ". Argument ist ein Zeichen-Datentyp";
          break;
        case "String":
          text = "Das " + i + ". Argument ist ein Referenz-Datentyp";
          break;
        default:
          text = "Der Datentyp des " + i + ". Arguments ist unbekannt";
      }

      System.out.println("\n" + text + " (" + klassenName + ")."); 
    }    
  }

  public static void main(String[] args) 
  {
    byte    a = 10;
    char    b = 'A';
    boolean c = true;
    String  d = "Hallo PLHQ!";
    double  e = 2.56;

    bestimmeDatentyp(a, b, c, d, e);
  }
 
}

In der main-Methode werden fünf Variablen initialisiert und anschließend als Argumente an die Methode bestimmeDatentyp übergeben. In der Methode bestimmeDatentyp wird jedes Argument ausgewertet und der jeweilige Datentyp bestimmt. Der Datentyp wird dann auf der Konsole ausgegeben.

Es ist zu beachten, dass mit Hilfe einer erweiterten for-Schleife die Elemente des Methodenparameters params durchlaufen werden. Der Datentyp wird anschließend mittels switch-Anweisung bestimmt.

In der folgenden Abbildung ist die Kommandozeilenausgabe der Beispielanwendung darstellt:

Java Variable Parameterliste Beispiel

Java Variable Parameterliste – Ausgabe der Beispielanwendung


Comments 1

  1. Pingback: Klassen in Java: Die Grundlagen der objektorientierten Programmierung

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.