Cod*_*ete 3 java stringbuilder clone stringbuffer cloneable
制作一个不可变对象是个坏主意Cloneable.这就是为什么 String不能克隆.不可变BigInteger并且BigDecimal也没有 Cloneable.
但是无法克隆可变的StringBuilder和StringBuffer!
这种决定背后的原因是什么?
是的,我可以使用"复制构造函数",new StringBuilder(CharSequence seq)但提供复制构造函数和禁止克隆的设计原则/推理是什么?
因为Cloneable从一开始就是错误.
所有这些使这个界面不受欢迎.
所以答案是:没有人想要它.
编辑
如果你想知道为什么它会实现馊主意Cloneable的StringBuilder:Cloneable有浅拷贝语义,这使得难以维持不变(这是通用的问题与可变对象的浅拷贝).例如,toString在我们克隆它的情况下会有一些优化被破坏.
| 归档时间: |
|
| 查看次数: |
59 次 |
| 最近记录: |