作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这个问题让我很困扰,重写方法时很容易忘记调用 super()。
就我而言,我正在重构一些现有的东西,其中已经有大约十个类覆盖了一个方法。直到昨天,该方法还有一个空的默认实现,因此子类是否调用 super 并不重要。您可以发现重写器与任何有值(value)的 IDE 配合得很好,但您知道它是怎么回事,电话铃声响起,同事在您背后闲聊……很容易忘记检查某个位置或以其他方式忽略它。理想情况下,@Override 注释会有一个对应项,并且如果基类方法被注释但重写不调用 super,编译器将为这些位置生成警告。
我能做的下一件最好的事情是什么?
最佳答案
不太优雅,但可能的解决方案是将该方法分成两个:
public abstract class Foo {
public void doBar() {
// do your super logic
doBarInternal();
}
public abstract void doBarInternal();
}
关于java - 清楚表明重写方法应该调用 super 的好方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7350297/
MVC3 中的助手是否在 Controller 和 View 中使用? 助手是放置常用 Controller 方法的正确位置吗? 我想创建一个通用方法来获取数据库中的所有子子 ID,并确保它位于正确的
有人可以阐明这两者之间的区别吗,因为它们存在于执行上下文中?我很难阅读 ECMA 262 v 5规范并清楚地看到差异。 谢谢你, 最佳答案 两者都是执行上下文的组件(相同类型),但它们有不同的用途(f
我是一名优秀的程序员,十分优秀!