作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有什么方法可以将可变对象按值传递给 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/
我是一名优秀的程序员,十分优秀!