如何在Java/eclipse中添加不调用super()的警告

che*_*ang 0 java eclipse compiler-warnings

我希望子类总是为某些方法调用super().如何在编译时强制执行或至少发出警告?

谢谢

Chr*_*ite 10

您可以稍微改变一下来强制执行此行为:

超类应该是抽象的,或者至少定义方法final.然后定义一个子类必须实现的受保护方法,最后让超类在完成任何需要事先运行的代码后调用该方法:

public abstract class SuperClass {
    // final so it can't be overriden
    public final void superMethod() {
        // required code here

        // then delegate to implMethod
        implMethod();
    }

    protected abstract() void implMethod();
}

public class SubClasss extends SuperClass {
    protected void implMethod() {
        // sub class logic
    }
}
Run Code Online (Sandbox Code Playgroud)

当然,SuperClass不必是抽象的,你可以实现implMethod然后允许子类覆盖它