在Java中通过引用传递字符串?
我习惯在中执行以下操作C
:
void main() { String zText = "";
fillString(zText);
printf(zText);
}
void fillString(String zText) {
zText += "foo";
}
输出为:
foo
但是,在Java中,这似乎不起作用。我认为是因为该String
对象是复制的,而不是通过referenced传递的。我以为字符串是对象,总是通过引用传递。
这里发生了什么?
回答:
你有三种选择:
- 使用StringBuilder:
StringBuilder zText = new StringBuilder ();void fillString(StringBuilder zText) { zText.append ("foo"); }
- 创建一个容器类,并将容器的实例传递给你的方法:
public class Container { public String data; }void fillString(Container c) { c.data += "foo"; }
- 创建一个数组:
new String[] zText = new String[1];zText[0] = "";
void fillString(String[] zText) { zText[0] += "foo"; }
从性能的角度来看,StringBuilder通常是最佳选择。
以上是 在Java中通过引用传递字符串? 的全部内容, 来源链接: utcz.com/qa/425636.html