use*_*241 0 java string field cloning getter-setter
在Java中,建议在getter方法中返回字符串时创建另一个String.my_name是类的String字段.
public String getName()
{
String rString = my_name.toString();
return rString;
}
Run Code Online (Sandbox Code Playgroud)
Roh*_*ain 11
在Java中,建议在getter方法中返回字符串时创建另一个String.my_name是类的String字段.
不,这样做没有意义.由于Java中的字符串是不可变的,当您尝试修改getter方法返回的字符串(即重新分配当前指向字符串对象的字符串引用,到另一个字符串)时,它将创建一个新字符串,并分配一个引用将该字符串转换为当前字符串引用,从而将其与原始字符串分离.
但是,如果你有mutable字段,比如a array,那么在这种情况下,如果你希望你的对象是不可变的,建议你返回它的防御性副本.