Heim >Java >javaLernprogramm >Wie kann ich ein Array als Argumente an eine Java-Methode mit variablen Argumenten übergeben?
Übergabe eines Arrays als Argumente an eine Methode mit variablen Argumenten in Java
Problem
Das Ziel besteht darin, eine Java-Methode zu erstellen, die ein Array von Argumenten entgegennimmt und jedes einzelne Argument an eine Methode mit variablen Argumenten übergibt. Das Problem tritt jedoch auf, wenn die Methodensignatur ein Objekt[] anstelle separater Argumente deklariert, was dazu führt, dass das Array als einzelnes Argument behandelt wird.
Lösung
Ja ist es in Java möglich, ein Array als Argumente an eine Methode mit variablen Argumenten zu übergeben. Dies wird durch den syntaktischen Zucker von T... ermöglicht, der T[] entspricht.
Codebeispiel
Das folgende Beispiel veranschaulicht, wie dies erreicht wird:
public static String ezFormat(Object... args) { String format = new String(new char[args.length]) .replace("", "[ %s ]"); return String.format(format, args); } public static void main(String... args) { System.out.println(ezFormat("A", "B", "C")); // prints "[ A ][ B ][ C ]" }
Varargs Fallstricke
Passiert Null
Beachten Sie, dass die Übergabe von Null an einen Varargs-Parameter zu unerwartetem Verhalten führen kann. Um Fehler zu vermeiden, können Sie null als Array oder als einzelnes Argument übergeben.
Hinzufügen zusätzlicher Argumente
Beim Übergeben eines Arrays an einen Varargs-Parameter und beim Hinzufügen zusätzlicher Argumente , muss ein neues Array erstellt werden, das sowohl das zusätzliche Argument als auch die ursprünglichen Array-Elemente enthält.
Übergabe eines Arrays von Primitive
Varargs funktioniert nur mit Referenztypen. Um ein Array von Grundelementen zu übergeben, konvertieren Sie sie in ihre entsprechenden Wrapper-Klassen (z. B. int[] in Integer[]).
Das obige ist der detaillierte Inhalt vonWie kann ich ein Array als Argumente an eine Java-Methode mit variablen Argumenten übergeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!