![](/img/trans.png)
[英]Java — StringBuilder using String & not StringBuilder
[英]StringBuilder from String in Java
假设我们有一个StringBuilder
或StringBuffer
如下所示:
StringBuilder s1 = new StringBuilder("xxx");
StringBuffer s2 = new StringBuffer("xxx");
我们可以使用toString()
方法从上述变量中获取一个String
。
我知道toString
在两个类中都是重写的方法。
还要假设我们有一个如下所示的String
:
String s3 = "xxx";
我无法使用toStringBuilder()
或toStringBuffer()
获得StringBuilder
或StringBuffer
。 相反,我们可以实现的方式如下:
StringBuilder sb = new StringBuilder(s3);
有没有为什么没有定义toStringBuilder()
/ toStringBuffer()
的原因,还有没有其他有效的方法来从String
获取StringBuilder
/ StringBuffer
。
字符串本身是不可变的 。 这具有许多优点,尤其是在并发使用,共享子字符串等方面。
类之间的来回耦合也是不好的设计。
toString
是Object
类的一部分,因此,java的所有类都将具有该方法。 String
是不可变的,因此toStringBuilder
和toStringBuffer
都将创建新对象。 我认为,如果有这样的方法,许多用户会误以为使用这些方法,他们可以就地修改字符串。 同样由于相同的原因,不可能有任何更有效的方法来创建StringBuilder
/ StringBuffer
。
您可能会要求使用大量String.toFoo()
方法,以及在哪里画线? 您可以使用构造函数构造StringBuilder
和StringBuffer
。 够了-为什么要添加另一种方法?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.