java – 为不可变类实现clone()
发布时间:2020-05-24 02:37:01 所属栏目:Java 来源:互联网
导读:我正在开发一个类库. 我有一个矩阵的抽象基类Matrix,它提供了一些基本方法的实现. 派生自Matrix是不同类型矩阵的具体子类. 我要求矩阵可以克隆,因此Matrix实现了Cloneable接口. 从Matrix派生的一些类是不可变的 对于不可变类的克隆方法而言,它是否可以接受而
我正在开发一个类库. >我有一个矩阵的抽象基类Matrix,它提供了一些基本方法的实现. 对于不可变类的克隆方法而言,它是否可以接受而不是返回对象的克隆,而是返回对象本身? 一些(过于简化的)代码用于澄清: 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; } ... } 解决方法我本以为调用super.clone()就足够了.如果你的类是不可变的,那么在构造它时它应该已经克隆了任何可变类.因此,我认为你的班级有任何领域的浅拷贝是安全的. JavaDocs声明x.clone()!= x是首选.虽然这不是一个绝对的要求,但你的计划肯定会违反这一要求. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- java – 验证Postscript而不尝试打印它?
- JavaWeb中struts2实现文件上传下载功能实例解析
- java – 是否可以只在同一个包和子包中访问接口?
- java使用RandomAccessFile类基于指针读写文件实例代码
- Java中使用DOM和SAX解析XML文件的方法示例
- 如何解决此Java泛型通配符错误?
- Java以struts2为例介绍如何实现图片上传
- java – 有没有办法使用NamedParameterJdbcTemplate和Gener
- java – Square Retrofit Client:如何启用/禁用followRedi
- java – file.canWrite(); file.canRead(); file.canExceut