有两个问题:
- 整数是通过值而不是通过引用传递的。在方法内部更改引用不会反映到调用方法中的传入引用中。
- 整数是不可变的。没有像这样的方法
Integer#set(i)
。否则,您可以利用它。
要使其正常工作,您需要重新分配该
inc()方法的返回值。
integer = inc(integer);
要了解有关按值传递的更多信息,这是另一个示例:
public static void main(String... args) { String[] strings = new String[] { "foo", "bar" }; changeReference(strings); System.out.println(Arrays.toString(strings)); // still [foo, bar] changevalue(strings); System.out.println(Arrays.toString(strings)); // [foo, foo]}public static void changeReference(String[] strings) { strings = new String[] { "foo", "foo" };}public static void changevalue(String[] strings) { strings[1] = "foo";}


