2017-04-27 150 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