gpt4 book ai didi

java - 如何将可变对象按值传递给java

转载 作者:行者123 更新时间:2023-12-01 17:37:58 25 4
gpt4 key购买 nike

有什么方法可以将可变对象按值传递给 java 中的函数吗?

我真正想要的是将一个对象传递给一个方法,对其进行一些操作(更改它),然后仅使用旧对象(而不是更改后的值)再次调用该方法。

这是一些示例:

    { MyObj obj = new MyObj(); obj.setName("name");

append(obj);
System.out.println(obj.name);

prepend(obj);
System.out.println(obj.name);

}

void append(MyObj obj){ obj.name+="1"; }

void prepend(MyObj obj){ String a = "1"; obj.name=a+obj.name; }

在此代码末尾,我希望输出为:

name1
1name

最佳答案

在 Java 中,对象本身根本不被传递。曾经。

但是一切都是按值传递的 - 唯一可以传递的东西是原始值和引用。

不太清楚您想要做什么 - 是您想要一个带有(例如)StringBuilder 参数的方法,但不对对象进行任何更改从调用者可见的方法内部?如果是这样,您基本上需要自己克隆该对象。

关于java - 如何将可变对象按值传递给java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4365845/

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