首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java: Cloneable接口的基本原理

Java: Cloneable接口的基本原理
EN

Stack Overflow用户
提问于 2009-04-02 11:47:25
回答 5查看 7.7K关注 0票数 33

为什么没有在java.lang.Cloneable接口中指定.clone()方法?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-04-02 12:05:53

基本上,这是一个坏掉的界面。Ken Arnold和Bill Venners在Java Design Issues上讨论了这一问题。

阿诺德:

如果我在这一点上成为上帝,很多人可能会很高兴我不是,我会说弃用Cloneable,有一个Copyable,因为Cloneable有问题。除了拼写错误之外,Cloneable不包含clone方法。这意味着您不能测试某个对象是否是Cloneable的实例,将其强制转换为Cloneable,然后调用clone。你必须再次使用反射,这很糟糕。这只是一个问题,但我肯定会解决的。

票数 36
EN

Stack Overflow用户

发布于 2009-04-02 11:56:55

在Java bugs数据库中查看此错误:

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4098033

本质上,这是Java早期版本中的一个设计缺陷,他们不打算在Cloneable接口中修复,因为这样做会破坏与一些现有代码的兼容性。

票数 10
EN

Stack Overflow用户

发布于 2009-04-02 12:03:20

在Java中,有一个标记接口的概念。Cloneable接口没有方法或字段,仅用于标识可克隆的语义。

dev-x网站:

你经常会遇到

中没有行为的接口。换句话说,它们只是空的接口定义。这些接口称为标记接口。Java API中的一些标记接口示例包括:

  • java.lang.Cloneable
  • java.io.Serializable
  • java.util.EventListener
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/709380

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档