我希望拦截(并且不覆盖)控制器static
方法调用和(如果标志为真..)重定向到另一个控制器中的另一个方法。
如果config标志为true而没有覆盖,我需要重新定义一个方法。
public class Utils extends Controller {
private static String pippo() {
return "1";
}
}
public class Another extends Controler {
private static String pippo() {
return "2";
}
}
System.out.println(Utils.pippo());
out: 2
答案 0 :(得分:0)
我找到的解决方案是:
public class MyController extends InterceptController {
protected static void redirect(String url) {
// default redirect impl.
...
}
}
public class InterceptController extends Controller {
// re-write static method
protected static void redirect(String url) {
if (isActive()) {
new RedirectWID(url).invoke(); // new impl. if flag is true
} else {
Controller.redirect(url); // old impl. if flag = false
}
}
...
}