我需要在我的项目中扩展 .class 文件,并且需要重写一个简单的方法。考虑我有一个类 A,它位于某个 .jar 包中。现在我想重写类 A 的 test() 方法。我使用创建 A 的子类 B 并重写它来做到这一点。 现在在我的应用程序包(它是.jar)中为A类创建了对象。该对象调用A类的方法。但我想调用B类的方法。
我的想法是在整个应用程序中代理对象创建。每当创建 A 类的对象时,我想要一些配置来创建 B 类的对象并移交给 A 类启动。
请有人帮助我实现这种类型的机制。
最佳答案
仅当构造函数是私有(private)时,您才能阻止或控制类实例化。
如果无法覆盖原来的基类,又想代理它,就需要一个工厂,建议程序员使用工厂,而不是直接调用基类的构造函数。
在工厂代码中,您可以返回一个作为基类代理运行的子类。
Remember that this is only an advice. You can't block programmers to manually create instances of a class with a public constructor.
关于java - Java中如何实现对象代理或类代理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31455312/