有什么方法可以将可变对象按值传递给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; }
Run Code Online (Sandbox Code Playgroud)
在此代码的末尾,我希望输出为:
name1
1name
Run Code Online (Sandbox Code Playgroud)
Java 中根本不传递对象本身。曾经。
但是一切都是按值传递的 - 唯一可以传递的东西是原始值和引用。
不太清楚您要做什么 - 您是否希望有一个带有(例如)StringBuilder参数的方法,但没有对调用者可见的方法内的对象进行任何更改的想法?如果是这样,您基本上需要自己克隆对象。