2017-04-27 108 views
2

MaximumInheritanceDepth这是我的设置:鱿鱼:在Android

  • SonarQube 5.6.6
  • SonarJava插件4.8.0.9441

代码:

public class BaseActivity extends android.app.Activity {} 

public class FooActivity extends BaseActivity {} 

SonarQube认为FooActivity违反squid:MaximumInheritanceDepth

这个班有6位家长,大于5位授权。

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

这是一个错误?

回答

2

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

请注意,计划更新为规则,以便不从总继承深度中简单地排除过滤的类,而是在到达过滤的类后立即停止递增继承级别。处理吉拉票SONARJAVA-2252时将完成修复。

+0

请您详细说明如何“设置filteredClasses规则属性”,特别是在Android的上下文中? – friederbluemle

+0

我配置了质量配置文件的规则来设置filteredClasses为:android.app。*,android.view。*,android.content。*,android.os。* – Alix