簡體   English   中英

添加專用過濾器 <static initializer> 在findbugs中

[英]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='&lt;clinit&gt;'/>過濾器嗎? (這幾乎是<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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM