我尝试为方法创建一个数组参数,但总是会出现错误。
public void methodExample1() {
int array1[] = new int[4]
}
public void methodExample(Array array1[]) {
System.out.println(array1[0]);
}
但它总是说我的参数有错误。有没有办法做到这一点?
答案 0 :(得分:3)
试试这个:
public void methodExample(int[] array1)
说明:该类型与您用于声明将作为参数传递的值相同(目前我忽略了协变数组),例如,如果您执行此操作:
int[] array1 = new int[4];
...然后,在将它作为参数传递时,我们将这样写:
methodExample(array1)
另请注意,数组的大小必须 not 作为参数传递,并且按照惯例,[]
部分紧跟在数组元素的类型之后(实际上,int[]
是数组的类型),而不是数组的名称。
答案 1 :(得分:0)
我假设你试图将数组作为参数传递给方法,初始化它然后调用另一个方法来打印它?
在java中,您必须通过调用new ...
来创建一个对象并为其“分配”内存空间所以你可以这样做:
public static void main(String[] args) {
int [] m_array; // creating a array reference
m_array = new int[5]; // allocate "memory" for each of of them or you can consider it as creating a primitive of int in each cell of the array
method(m_array); // passing by value to the method a reference for the array inside the method
}
public void method(int [] arr) // here you are passing a reference by value for the allocated array
{
System.out.println(arr[0]);
}
答案 2 :(得分:0)
如果我理解了您的问题,那么您可以使用Array
,以及
public static void methodExample(Object array1) {
int len = Array.getLength(array1);
for (int i = 0; i < len; i++) {
System.out.printf("array1[%d] = %d%n", i, Array.get(array1, i));
}
}
public static void main(String[] args) {
methodExample(new int[] { 1, 2, 3 });
}
输出
array1[0] = 1
array1[1] = 2
array1[2] = 3