And*_*NER 32 java specifications clone cloneable
为什么界面中没有.clone()指定方法java.lang.Cloneable?
Bil*_*ard 36
基本上,它是一个破碎的界面.Ken Arnold和Bill Venners在Java设计问题中讨论了它.
阿诺德:
如果我在这一点上成为上帝,很多人可能很高兴我不是,我会说弃用
Cloneable并且有一个Copyable,因为Cloneable有问题.除了它拼写错误的事实,Cloneable不包含clone方法.这意味着您无法测试某些内容是否是实例Cloneable,将其转换为Cloneable和调用clone.你必须再次使用反射,这很糟糕.这只是一个问题,但我肯定会解决.
Dav*_*d M 10
请参阅Java错误数据库中的此错误:
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4098033
从本质上讲,这是Java早期版本中的一个设计缺陷,它们不打算在Cloneable接口中修复,因为这样做会破坏与某些现有代码的兼容性.
在Java中,有标记接口的概念.该Cloneable接口没有方法或字段,仅用于标识可克隆的语义.
来自dev-x网站:
通常,您会遇到没有行为的Java接口.换句话说,它们只是空接口定义.这些被称为标记接口.Java API中的标记接口的一些示例包括:
在我工作的项目中,我们创建了一个名为PublicCloneable的接口,它包含clone方法并指定它是公共的.
我发现这个有用:事实上有一个克隆方法,但你无法访问它并没有多大帮助.
public interface PublicCloneable extends Cloneable {
public Object clone();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7508 次 |
| 最近记录: |