【发布时间】:2011-11-13 02:22:03
【问题描述】:
这个问题让我很头疼,重写方法时很容易忘记调用 super()。
在我的例子中,我正在重构一些现有的东西,其中已经有大约十个类覆盖了一个方法。直到昨天,该方法还有一个空的默认实现,所以子类是否调用 super 并不重要。 您可以使用任何值得其盐的 IDE 找到覆盖器,但您知道它是怎样的,电话响了,同事在您背后闲聊……很容易忘记检查一个地方或以其他方式忽略它。 理想情况下,@Override 注释会有一个对应项,如果基类方法被注释但覆盖没有调用 super,编译器会为这些地方生成警告。
我能做的下一件最好的事情是什么?
【问题讨论】:
-
拔掉手机电源,别再偷听smalltalks了!
-
某些 IDE 允许您搜索“拒绝遗赠”等。您可以使其显示为错误(尽管它不会停止构建)您可以在特定情况下选择性地忽略此警告。
-
我不确定,但是像 FindBugs、PMD 之类的工具不是都有这样的规则吗?
标签: java annotations overriding super