Dur*_*dal 2 java overriding annotations super
这个问题只是让我感到困惑,在重写方法时很容易忘记调用super().
在我的情况下,我正在重构一些现有的东西,其中已经有大约十个类覆盖了一个方法.直到昨天,该方法都有一个空的默认实现,所以如果子类称为super,则无关紧要.你可以在任何有价值的IDE中找到覆盖物,但是你知道它是怎么回事,电话铃声,同事们背后都有一个小小的东西......很容易忘记检查一个地方或者忽略它.理想情况下,@ Override注释会有一个对应物,如果基类方法被注释但是覆盖不会调用super,编译器会为这些位置生成警告.
什么是我能做的最好的事情?
axt*_*avt 10
不太优雅,但可能的解决方案是将该方法分解为两个:
public abstract class Foo {
public void doBar() {
// do your super logic
doBarInternal();
}
public abstract void doBarInternal();
}
Run Code Online (Sandbox Code Playgroud)