Passing an Array as Arguments to a Method with Variable Arguments in Java
Problem
The goal is to create a Java method that takes an array of arguments and passes each individual argument to a method with variable arguments. However, the problem arises when the method signature declares an Object[] instead of separate arguments, leading to the array being treated as a single argument.
Solution
Yes, it is possible to pass an array as arguments to a method with variable arguments in Java. This is made possible by the syntactic sugar of T... which is equivalent to T[].
Code Example
The following example illustrates how to achieve this:
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 Gotchas
Passing Null
Be aware that passing null to a varargs parameter may result in unexpected behavior. To avoid errors, you can pass null as an array or as a single argument.
Adding Extra Arguments
When passing an array to a varargs parameter and adding extra arguments, it is necessary to create a new array that accommodates both the extra argument and the original array elements.
Passing Array of Primitives
Varargs only works with reference types. To pass an array of primitives, convert them to their corresponding wrapper classes (e.g., int[] to Integer[]).
The above is the detailed content of How Can I Pass an Array as Arguments to a Java Method with Variable Arguments?. For more information, please follow other related articles on the PHP Chinese website!