将数组作为参数传递给 Java 中具有变量参数的方法
问题
目标是创建一个 Java 方法,该方法接受一组参数并将每个单独的参数传递给一个方法:变量参数。但是,当方法签名声明一个 Object[] 而不是单独的参数时,就会出现问题,导致数组被视为单个参数。
解决方案
是,可以将数组作为参数传递给 Java 中具有可变参数的方法。这是通过 T... 的语法糖实现的,它相当于 T[]。
代码示例
以下示例说明了如何实现此目的:
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 ]" }
可变参数陷阱
传递 Null
请注意,将 null 传递给 varargs 参数可能会导致意外行为。为了避免错误,您可以将 null 作为数组或单个参数传递。
添加额外参数
将数组传递给 varargs 参数并添加额外参数时,需要创建一个新数组来容纳额外的参数和原始数组元素。
传递基元数组
Varargs 仅适用于引用类型。要传递基元数组,请将它们转换为相应的包装类(例如,int[] 到 Integer[])。
以上是如何将数组作为参数传递给具有变量参数的 Java 方法?的详细内容。更多信息请关注PHP中文网其他相关文章!