【问题标题】:Why am getting error from SONAR even after removing @override Annotation.?为什么即使在删除 @override Annotation 之后也会从 SONAR 收到错误。?
【发布时间】:2015-08-17 05:19:55
【问题描述】:
Class A extends B{    
    protected void executeImpl(){
        super.executeImpl();
    }
}

在第三类被注入的类以上

Class C{

    A a;

    public void execute(){
    a.executeImpl()

    }

    }

错误:描述受让人资源新问题 无用的重写方法:重写方法只是调用 super

【问题讨论】:

  • 错误非常清楚地说明了原因:“覆盖方法仅调用超级”您没有在被覆盖的方法中添加任何新逻辑,因此不需要在那里。
  • 嗨 Karthik,如前所述,这是 SONARQube 正在显示的内容......如果我输入或不输入错误保持不变。

标签: java inheritance sonarqube


【解决方案1】:

@Override 注解只能添加在继承的方法上。这并不意味着如果您删除注释,则不再继承该方法。还是继承的!因此该规则仍然有效,因为它没有改变程序的语义来删除注释。

【讨论】:

  • 我应该删除 super.executeImpl();
  • 该规则对您的建议是,使用此方法可能毫无用处,因为根本没有代码会产生相同的行为。
  • 不,你应该删除整个方法,因为即使没有明确的覆盖方法,它也不会做任何事情。
  • 当然不是,你应该删除整个方法,因为这个实现调用 super.executeImpl() (我鼓励你仔细看看这到底是什么意思)是完全一样的就好像在这种情况下你没有方法一样。
猜你喜欢
  • 2020-10-25
  • 2019-07-29
  • 1970-01-01
  • 1970-01-01
  • 2020-11-23
  • 1970-01-01
  • 2021-12-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多