为什么clone()方法在java.lang.Object中受到保护?

为什么clone()方法在java.lang.Object中受到保护?,第1张

为什么clone()方法在java.lang.Object中受到保护?

克隆受到保护的事实非常令人怀疑-事实是该clone方法未在Cloneable接口中声明。

它使该方法对于获取数据副本非常无用,因为你不能说:

if(a instanceof Cloneable) {    copy = ((Cloneable) a).clone();}

我认为,Cloneable现在的设计在很大程度上被认为是一个错误(以下引用)。我通常希望能够实现接口的实现,Cloneable但不一定要实现接口Cloneable(类似于的使用Serializable)。没有反思就无法做到这一点:

ISomething i = ...if (i instanceof Cloneable) {   //DAMN! I Need to know about ISomethingImpl! Unless...   copy = (ISomething) i.getClass().getMethod("clone").invoke(i);}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5017575.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-14
下一篇 2022-11-14

发表评论

登录后才能评论

评论列表(0条)

保存