我们有一种情况,我们正在使用某个库,我们想自定义库中使用的一个小型私有方法的逻辑。不幸的是,该库编写得不好,无法扩展。
所以基本上,想象一下如果我们有一个ClassA
像这样的类的库:
public class ClassA {
public String buildMessage(){
return "Hello, "+ buildSuffixString();
}
private String buildSuffixString(){
return "World!";
}
}
该类ClassA
由该类在库中使用ClassB
。ClassB
在库中被ClassC
等等使用。ClassB
使用如下代码在构造函数中创建它的依赖项classA = new ClassA()
;(不幸的是)。使用类似;ClassC
的代码在构造函数中创建其依赖项。classB = new ClassB()
等等。
我们想强制每个使用方法buildMessage()
的人ClassA
来获取Hello, Kitty!
消息而不是Hello, World!
(即我们需要将私有方法的实现替换buildSuffixString()
为我们自己的实现)。有没有办法通过使用反射或Java编译器或其他东西来改变私有方法的逻辑?