我想替换一个我知道源代码的类的函数。问题是我不能重写该函数,因为它是私有的,而且我不能扩展类并重写整个功能,因为错误的调用在每个可能的构造函数中。
现在我完全迷失了,我不知道如何实现所需的功能(主题化 Android VideoView 控件的控件,即 MediaController)。有没有办法用反射或类似的东西替换函数?或者甚至可以不调用超类的构造函数而是调用超超类?
这是一个非常基本的类,它显示了我的问题:
public class Base {
public Base(int state) {
// must be called
}
}
public class Example extends Base {
public Example(int state, boolean bla) {
super(state);
badCall();
}
public Example(int state) {
this(state, false);
}
private badCall() {
// doing bad things
}
}
另请注意,我需要一个实例,Example
因此我不能简单地复制该类。