Suche…


Bemerkungen

Mit einem Argument der Methode varargs können Aufrufer dieser Methode mehrere Argumente des angegebenen Typs angeben, die jeweils als separates Argument dienen. Sie wird in der Methodendeklaration durch drei ASCII-Punkte ( ... ) nach dem Basistyp angegeben.

Die Methode selbst erhält diese Argumente als einzelnes Array, dessen Elementtyp der Typ des varargs-Arguments ist. Das Array wird automatisch erstellt (obwohl Aufrufer weiterhin ein explizites Array übergeben dürfen, anstatt mehrere Werte als separate Methodenargumente zu übergeben).

Regeln für varargs:

  1. Varargs muss das letzte Argument sein.
  2. Es kann nur eine Varargs in der Methode geben.

Sie müssen die obigen Regeln befolgen, andernfalls gibt das Programm einen Kompilierungsfehler aus.

Angabe eines varargs-Parameters

void doSomething(String... strings) {
    for (String s : strings) {
        System.out.println(s);
    }
}

Die drei Punkte nach dem Typ des letzten Parameters geben an, dass das letzte Argument als Array oder als Folge von Argumenten übergeben werden kann. Varargs können nur in der endgültigen Argumentposition verwendet werden.

Arbeiten mit Varargs-Parametern

Wenn Sie varargs als Parameter für eine Methodendefinition verwenden, können Sie entweder ein Array oder eine Folge von Argumenten übergeben. Wenn eine Folge von Argumenten übergeben wird, werden diese automatisch in ein Array umgewandelt.

Dieses Beispiel zeigt, wie ein Array und eine Folge von Argumenten an die Methode printVarArgArray() werden und wie sie im Code innerhalb der Methode identisch behandelt werden:

public class VarArgs {
    
    // this method will print the entire contents of the parameter passed in
    
    void printVarArgArray(int... x) {
        for (int i = 0; i < x.length; i++) {
            System.out.print(x[i] + ",");
        }
    }
    
    public static void main(String args[]) {
        VarArgs obj = new VarArgs();
        
        //Using an array:
        int[] testArray = new int[]{10, 20};
        obj.printVarArgArray(testArray); 
       
        System.out.println(" ");
        
        //Using a sequence of arguments
        obj.printVarArgArray(5, 6, 5, 8, 6, 31);
    }
}

Ausgabe:

10,20, 
5,6,5,8,6,31

Wenn Sie die Methode auf diese Weise definieren, werden Fehler beim Kompilieren angezeigt.

void method(String... a, int... b , int c){} //Compile time error (multiple varargs )

void method(int... a, String b){} //Compile time error (varargs must be the last argument 


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow