本人有如下,代码:
StringBuffer stringBuffer = new StringBuffer();
StringBuffer stringBuffer1 = new StringBuffer();
stringBuffer.append("234");
stringBuffer1 = stringBuffer;// 赋值
stringBuffer.append("567");//修改stringBuffer 的同时也修改了stringBuffer1
System.out.println(stringBuffer);// 234567
System.out.println(stringBuffer1);// 234567
我需要创建多个StringBuffer 对象,它们的初始值一样, 我期望得到的结果是,我在修改后面的值的时候,不会影响到其他前面的值(修改stringBuffer 的同时不修改了stringBuffer1),我该怎么做,小弟是菜鸟,求大神解答?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
这样?
把你的stringBuffer通过toString方法保存为一个String,后面直接用带一个String参数的StringBuffer构造方法初始化。
在Java中,对象之间的赋值是引用赋值,改变赋值对象的值会引发原对象的值发生改变。如果要实现你说的效果,应当使用构造方法创建新对象。比如说,你可以这样做:
这个也许可以帮助你
或者你就不先实例话stringBuffer1 而在赋值的那一段实例化并传入stringBuffer.toString()
用“=”是引用赋值,两个变量实际上是指向的同一个对象,想一个修改不影响另一个,只能新建一个对象。