在Java中,建议在getter方法中返回字符串时创建另一个String。 my_name是类的String字段。
public String getName()
{
String rString = my_name.toString();
return rString;
}
答案 0 :(得分:11)
在Java中,建议在返回时创建另一个String getter方法中字符串的字符串。 my_name是一个String字段 一个班级。
否,这样做没有意义。由于Java中的字符串是 immutable ,当您尝试修改getter
方法返回的字符串时(即重新分配当前指向字符串对象的String引用,到另一个字符串) ,它将创建一个新字符串,并将该字符串的引用分配给当前字符串引用,从而将其与原始字符串分离。
但是,如果您有mutable
字段,例如array
,那么在这种情况下,如果您希望对象是不可变的,建议您返回它的防御副本。
答案 1 :(得分:2)
没有。在Java中,字符串是不可变的,因此无论是谁调用getter都无法修改它。
此外,由于Java池字符串重用它们的方式,您的代码将完全与直接返回字段完全相同。