[英]Adding exclusive filter for <static initializer> in findbugs
我希望我的findbugs報告不顯示以下錯誤:
DM_NUMBER_CTOR:方法調用效率低的Number構造函數; 使用靜態valueOf代替
問題是,這在groovy生成的代碼文件中發生,所以我無法控制源代碼-這就是為什么我要排除它並將其添加到我的排除過濾器中的原因。
我不想顯式添加類(因為我制作了許多工具都將使用的API,所以我希望過濾器是通用的)。 我不想按類型從報告中完全刪除此錯誤,我真的只想排除此錯誤(如果它發生在“靜態初始值設定項”方法中)。 任何想法? 我嘗試了下面的過濾器,但沒有運氣,也許有人有更好的主意?
<Match>
<Method name="~.*static initializer.*" />
<Bug pattern="DM_NUMBER_CTOR" />
</Match>
在這種情況下,這是FindBugs的“ stacktrace”:
我猜想靜態初始化程序代碼將報告為發生在名為<clinit>
方法中。 您可以嘗試設置<Method name='<clinit>'/>
過濾器嗎? (這幾乎是<clinit>
但已轉義為XML)。 完全未經測試,只是一些隨意的想法。
我的線索是http:// findbugs \\ .googlecode \\ .com&sa = N&cd = 2&ct = rc&l = 125“>一些FindBugs內部測試的一部分:
String methodName = m.getMethodName();
...
if (... methodName.equals("<clinit>")) ) ...
我不確定,但是我認為如果實際發生錯誤,會提到相同的方法名稱( <clinit>
)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.