如何创建字符串变量的克隆?
有一个字符串变量说str
String str = row.getAttribute("Attribute");
那么如何将行中属性的值复制到字符串中,以便即使行已从内存中删除,也可以显示该值。
感谢。
答案 0 :(得分:6)
你可以做到
String newString = new String(oldString);
但是你克隆不可变字符串的理由是什么?
只有在我使用substring
获取字符串时才想从原始字符串中删除额外隐藏的字符时才会这样做。
关于您的修改:
如果你这样做
String str = row.getAttribute("Attribute");
然后str
即使在您销毁row
或更改row
的属性“属性”后仍会包含完全相同的值。您不需要克隆它。保留引用(变量str
)的事实可以保护它免受破坏。
答案 1 :(得分:1)
在Java中,String
对象是不可变的。这意味着它不会在您之下发生变化,因此您可以在整个程序中安全地使用相同的参考。
如果修改String
(通过追加,修剪等),那么会创建一个新的不可变对象。因此,在这种情况下,克隆的概念是多余的。