In Java, is it advisable to create another String when returning fields that are Strings in a getter method. my_name is a String field of a class.
public String getName()
{
String rString = my_name.toString();
return rString;
}
In Java, is it advisable to create another String when returning fields that are Strings in a getter method. my_name is a String field of a class.
public String getName()
{
String rString = my_name.toString();
return rString;
}
在 Java 中,是否建议在 getter 方法中返回作为字符串的字段时创建另一个字符串。my_name 是一个类的字符串字段。
不,这样做没有意义。由于 Java 中的字符串是不可变的,当你尝试修改getter
方法返回的字符串时(即重新分配当前指向字符串对象的字符串引用,分配给不同的字符串),它会创建一个新字符串,并分配一个引用将该字符串指向当前字符串引用,从而将其与原始字符串分离。
但是,如果您有mutable
字段,例如array
,那么在这种情况下,如果您希望您的对象是不可变的,则建议返回它的防御性副本。
不。在 Java 中,字符串是不可变的,因此调用 getter 的任何人都无法修改它。
此外,由于 Java 将字符串池化以重用它们的方式,您的代码将执行与直接返回字段完全相同的操作。