Java:为什么不应该将clone()用于防御性复制?

Java:为什么不应该将clone()用于防御性复制?,第1张

Java:为什么不应该将clone()用于防御性复制?

考虑以下代码

public class MaliciousDate extends Date {  }public class SomeClass {    public static void main(String[] args) {        MaliciousDate someDate = new MaliciousDate();        Date copyOfMaliciousDate = someDate;        Date anotherDate = copyOfMaliciousDate.clone();    }}

由于

copyOfMaliciousDate
类型为
Date
,因此您可以调用
clone()
,它将返回一个
Date
对象,但是
clone
on
调用会
copyOfMaliciousDate
执行在
MaliciousDate
类中编写的代码,因为存储在中的
实例
copyOfMaliciousDate
MaliciousDate




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

原文地址: http://outofmemory.cn/zaji/4955421.html

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

发表评论

登录后才能评论

评论列表(0条)

保存