将字符串内容分配给 Java 中的新字符串 from 参数



有这个方法

void doSomething(String input)
{
   //trick for create new object instead of reference assignment
   String workStr= "" + input; 
   //work with workStr
}

哪种Java方法可以做到这一点?

编辑

  • 如果我使用输入变量作为输入=某些东西,那么 Netbeans 会警告分配值到方法参数
  • 如果我使用新的字符串(输入)创建它,它会警告使用字符串构造函数

也许解决方案不是不为输入分配任何内容,或者只是忽略警告。

String copy = new String(original);

初始化新创建的 String 对象,使其表示与参数相同的字符序列;换句话说,新创建的字符串是参数字符串的副本。除非需要原始副本的显式副本,否则不需要使用此构造函数,因为字符串是不可变的。

http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#String(java.lang.String)

Java 中的String是不可变的,这意味着您无法更改对象本身(任何返回字符串(例如子字符串)的操作都将返回一个新字符串)。

这意味着无需为 String 创建新对象,因为您无法修改原始对象。 任何这样做的尝试都只会导致内存浪费。

仅当相关对象是可变的时,分配引用才是一个问题,因为一个对象中的更改将反映在同一引用的所有其他副本中。

最新更新