在Java中,数组作为实参可以通过以下几种方式传递:
传递数组的引用
public class Test {
public void m1(int[] a) {
System.out.println("数组长度是:" + a.length);
}
public static void main(String[] args) {
Test t = new Test();
int[] b = {1, 2, 3, 4, 5};
t.m1(b); // 直接创建数组传值
t.m1(new int[]{1, 2, 3}); // 直接传递null,但是次数组不可用
t.m1(null); // 传递null
}
}
传递包装类
对于基本类型数组,可以使用其包装类(如`Integer[]`)传递。
使用可变参数
使用可变参数语法(如`int... arr`)允许传递长度可变的数组。
返回数组的引用
方法可以返回数组的引用,可以是直接创建的数组,也可以是`null`。
public class Test {
public String[] m1() {
String[] s = {"abc", "de"};
return s;
}
public String[] m2() {
return new String[]{"a", "b", "c"};
}
public String[] m3() {
return null;
}
public static void main(String[] args) {
Test t = new Test();
String[] result1 = t.m1();
String[] result2 = t.m2();
String[] result3 = t.m3();
// 打印结果
System.out.println(Arrays.toString(result1));
System.out.println(Arrays.toString(result2));
System.out.println(Arrays.toString(result3));
}
}
请注意,传递数组时,实际上是传递了数组的引用,所以如果方法内部修改了数组,那么原始数组也会被修改。如果需要避免这种情况,可以在传递之前创建数组的副本。