Axe*_*xel 7 java clone class-design immutability
我正在开发一个类库.
对于不可变类的克隆方法而言,它是否可以接受而不是返回对象的克隆,而是返回对象本身?
一些(过于简化的)代码用于澄清:
abstract class Matrix implements Cloneable {
...
}
class ImmutableMatrix extends Matrix {
ImmutableMatrix clone() {
return this;
}
...
}
class SomeOtherMatrix extends Matrix {
SomeOtherMatrix clone() {
SomeOtherMatrix other = super.clone();
...
return other;
}
...
}
Run Code Online (Sandbox Code Playgroud)
Dun*_*nes 10
我原本以为打电话super.clone()就足够了.
如果你的类是不可变的,那么在构造它时它应该已经克隆了任何可变类.因此,我认为你的班级有任何领域的浅拷贝是安全的.
JavaDocs状态x.clone() != x是首选.虽然这不是一个绝对的要求,但你的计划肯定会违反它this.
| 归档时间: |
|
| 查看次数: |
6612 次 |
| 最近记录: |