这些天我正在阅读Joshua Bloch的第二版Effective Java.在第39项中,他提到将一个可变对象的防御性副本作为参数传递是个好主意,比如在给定类Foo的构造函数中,如果这些对象稍后用于表示类Foo的状态.在同一个上下文中,他提到避免使用非final类的clone()方法,因为它可能返回一个设计用于执行恶意操作的不可信子类的实例.
这是我没有明确得到的.作为恶意子类的一个例子,他提到了一个类,它可以"在创建时记录对私有静态列表中每个实例的引用,并允许攻击者访问该列表".
我的疑惑:
他是否意味着这个恶意类实际上可以记录封装类的所有私有/受保护/包/公共实例的引用?
如果是这样,怎么可能呢?你能给我举个例子吗?
谢谢!