我正在为 Java 编程类(class)执行一项任务,但我不确定以下内容是如何工作的?下面的方法从数组和整数中获取值。应该将整数添加到数组中,然后在其他方法中在方法之外使用,依此类推,但是当该方法没有返回数组的新内容时,这怎么可能呢?方法中有一个空白?我错过了什么吗?希望得到一些帮助?有关于指针的东西吗?
public static void makeTransaction(int[] trans, int amount);
最佳答案
Java 中的数组是对象。如果您修改方法内的 trans
数组,则更改将反射(reflect)在其外部1。例如:
public static void modify(int[] arr)
{
arr[0] = 10;
}
public static void main(...)
{
int x = {1, 2, 3};
System.out.println(x[0]); // prints 1
modify(x);
System.out.println(x[0]); // now it prints 10
}
请注意,Java 中无法动态调整 native 数组的大小。您将不得不使用类似 ArrayList
的内容如果你需要这样做。或者,您可以将返回类型更改为 int[]
并返回一个新数组,并将新元素“附加”到旧数组中:
public static int[] makeTransaction(int[] trans, int amount)
{
int[] new_trans = Arrays.copyOf(trans, trans.length + 1);
new_trans[trans.length] = amount;
return new_trans;
}
<小时/>
1 还值得注意的是,作为对象,数组引用是按值传递的,因此以下代码在方法之外没有任何效果:
public void no_change(int[] arr)
{
arr = new int[arr.length];
}
关于java - 数组和方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7839454/