我们有类库
class A {
public void callWorkflow() {
B b = new B();
}
}
class B {
public void callStatic() {
C.someMethod();
}
}
class C {
public static someMethod() {}
}
我们实际上是在尝试更改静态方法someMethod
的功能。有没有办法解决这个问题而不改变调用层次结构?
答案 0 :(得分:3)
您不能Override
static
方法。在我看来,从方法static
中删除someMethod()
,然后在类C
中创建类B
的对象。然后调用方法。
Class A{
public void callWorkflow() {
B b = new B();}
}
Class B{
public void callStatic(){
C c = new C();
c.someMethod();}
}
Class C{
public someMethod(){}
}
答案 1 :(得分:1)
无法覆盖static
方法。
这就是为什么这些方法中的一种比调用静态方法更受欢迎: