gpt4 book ai didi

java - 交换方法中的对象引用

转载 作者:行者123 更新时间:2023-12-01 19:57:49 26 4
gpt4 key购买 nike

Java 中,如果不包装到其他对象或使用数组,就无法做到这一点。这不起作用。

a; // Object@12345
b; // Object@56789
swap(a, b);
a; // Object@12345
b; // Object@56789

void swap(Object a, Object b) {
Object temp = a;
a = b;
b = temp;
}

但是真的没有办法改变引用吗?或者可以使用一些不安全的解决方法来实现吗?

最佳答案

局部变量只能在声明它们的方法中访问。当您调用不同的方法并传入值时,这些值将被复制到堆栈上的新位置。被调用的方法会看到这些变量的新副本。换句话说,在 swap 方法中使用的变量 ab 与变量 ab 是不同的变量。调用方法中的b。它们在堆栈上有不同的位置。

因此,如果您想在调用方法中更改ab的值,则必须在同一方法中更改它们 。根本无法在单独的方法中执行此更改,就像您在示例中尝试做的那样。

关于java - 交换方法中的对象引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48913670/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com