这是我的设置:
码:
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计算此规则的违规时,不应忽略任何超类吗?
这是错误吗?
这不是错误,而是配置问题。squid:S110可以配置Rule 以从继承树中过滤出类。默认情况下,不会忽略任何类,并且该规则只计算继承级别的数量,直到达到Object类为止。为了配置过滤的类,您必须设置filteredClassesrule属性。
请注意,计划将规则更新为不只是从总继承深度中排除已过滤的类,而是在达到过滤的类后立即停止增加继承级别。将在处理Jira机票SONARJAVA-2252时完成此修复。