squid:Android上的MaximumInheritanceDepth

Ali*_*lix 5 java sonarqube

这是我的设置:

  • SonarQube 5.6.6
  • SonarJava插件4.8.0.9441

码:

public class BaseActivity extends android.app.Activity {}

public class FooActivity extends BaseActivity {}
Run Code Online (Sandbox Code Playgroud)

SonarQube认为FooActivity违反squid:MaximumInheritanceDepth

本课程有6位家长,超过5位获得授权。

android.app.Activity是Android Native API。Activity计算此规则的违规时,不应忽略任何超类吗?

这是错误吗?

Mic*_*eam 5

这不是错误,而是配置问题。squid:S110可以配置Rule 以从继承树中过滤出类。默认情况下,不会忽略任何类,并且该规则只计算继承级别的数量,直到达到Object类为止。为了配置过滤的类,您必须设置filteredClassesrule属性。

请注意,计划将规则更新为不只是从总继承深度中排除已过滤的类,而是在达到过滤的类后立即停止增加继承级别。将在处理Jira机票SONARJAVA-2252时完成此修复。