【发布时间】:2013-01-28 14:16:22
【问题描述】:
class test
{
public String get() {return s;}
private String s="World";
}
class modifier
{
public static void modify(ref String v)
{
v+="_test";
}
}
String s1="Earth";
modifier.modify(ref s1); <-------- OK
test c=new test();
modifier.modify(ref c.get()); <------- Error
如何传入函数返回的“修饰符”字符串? 通过另一个 String 对象进行赋值是不可接受的。那么副本将如何创建。
【问题讨论】:
-
记住:字符串是不可变的类型。您不能更改它们。
-
public String get() {return s;} private String s="World";不确定,但尝试改变这两个的顺序,把私人放在第一位
-
"ref" 允许我将字符串作为参数传递并更改它。有没有这样的机制来获取字符串作为函数的结果?
-
公共静态字符串修改(String v) { return v + "_test"; }
-
只返回新字符串。请注意,当您通过 ref 传递字符串时,您将通过 ref 返回一个 NEW 字符串(旧字符串消失)。