如何通过反思改变方法行为?
2022-09-01 09:33:52
我在一些遗留代码中有一个静态方法,它由多个客户端调用。我显然没有选择覆盖它,或者通过依赖注入来改变行为。不允许我修改现有类。
我现在想做的是使用反射更改行为(该方法 - 具有相同的签名和返回类型)。
可能吗?如果没有,任何设计模式都能拯救我吗?
谢谢!
编辑:关于我可以更改/修改的内容存在一些混淆。我无法更改任何现有的类/方法 - 但我可以向项目添加更多类。我对现有类能做的最好的事情就是对它们进行注释。这一切都是为了避免破坏现有代码中的任何内容 - 这意味着对大项目进行一轮完整的测试。
编辑2:java.lang.Instrumentation不适用于Android - 否则它听起来很合适!