首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实现Cloneable接口如何允许对象的克隆,因为它是一个标记接口,没有任何方法?

实现Cloneable接口如何允许对象的克隆,因为它是一个标记接口,没有任何方法?
EN

Stack Overflow用户
提问于 2018-10-16 18:29:24
回答 2查看 477关注 0票数 0

我有一个要克隆其对象的类。我通过实现Cloneable接口并覆盖clone方法来做到这一点。但是如果我创建一个clone方法,而没有实现Cloneable接口,它就会抛出一个异常。这个标记接口(Cloneable)为我的类提供了什么超能力?

EN

回答 2

Stack Overflow用户

发布于 2018-10-16 18:46:22

java中对象的克隆:

这就是Cloneable接口。您可能希望接口有一个clone()方法,该方法将返回对象的一个副本。但是,事实并非如此。Cloneable只是一个标记接口。这意味着,它没有任何方法,它只是将类标记为适合克隆。相反,Object类中存在clone方法。

票数 0
EN

Stack Overflow用户

发布于 2018-10-16 19:54:21

它允许根据Object.cloneJavaDoc进行克隆

首先,如果此对象的类没有实现接口Cloneable,则抛出CloneNotSupportedException

每次调用Object.clone()时,都会验证这一要求。

CloneableJavaDoc本身说:

类实现Cloneable接口,以向Object.clone()方法指示该方法对该类的实例进行逐个字段复制是合法的。在未实现Cloneable接口的实例上调用对象的克隆方法会导致抛出异常CloneNotSupportedException

总结一下:

这是指定行为的一部分。不遵守此要求将是运行时的obvoius。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52833401

复制
相关文章

相似问题

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