4

有没有办法将java中的一个对象替换为另一个更新对第一个对象的所有引用以指向第二个对象的方法?在 C# 中,这个问题在这里得到了回答:Replace object instance with another in C#但我想知道我是否可以在 Java 中做到这一点。谢谢!

编辑: 1. 我想用子类型的对象替换第一个对象。2. 我无法编辑第一个对象的实现,这就是我用子类型替换它的原因。我可以编辑子类型。

4

2 回答 2

7

即使可以,也不要这样做。相反,使用另一个类来包含或包装您要替换的对象。容器必须通过调用原始方法中的方法来实现原始所需的所有方法,但是您可以随时轻松替换包装的类。包装器、原始类以及您替换它的类都应该实现相同的接口。这个解决方案有点工作,但随着时间的推移它会坚持下去。

我怀疑您真正想要的是一个具有许多可升级组件的类,但这对于初学者来说是可行的,并让您以正确的方式思考。

于 2012-08-24T21:09:36.397 回答
2

如果您的意图是用子类型替换特定类型的所有实例,那么您可以考虑使用java 代理

使用它,您将在类加载期间将基类替换为您的增强类。

于 2012-08-24T20:57:14.353 回答