我希望我FindBugs的報告中未顯示以下錯誤<靜態初始化>:添加獨家過濾器在FindBugs的
DM_NUMBER_CTOR:方法調用低效Number構造;使用靜態valueOf而不是
問題是,這發生在groovy生成的代碼文件,所以我無法控制源代碼 - 這就是爲什麼我想排除它並將其添加到我的排除過濾器。我不想顯式地添加類(因爲我製作了許多工具將使用的API,我希望我的過濾器是通用的)。我不想完全從報告中刪除此類錯誤,我真的希望僅在排除「靜態初始化器」方法時纔會排除此錯誤。任何想法?我嘗試了下面的過濾器,但沒有運氣,也許有人有更好的主意?
<Match>
<Method name="~.*static initializer.*" />
<Bug pattern="DM_NUMBER_CTOR" />
</Match>
這裏是在這種情況下的FindBugs 「堆棧跟蹤」:
在類net.milanaleksic.cuc.tools.sound.SoundPlayerTool 在方法net.milanaleksic.cuc.tools.sound。 SoundPlayerTool。() 調用方法新龍(長) 應該調用Long.valueOf(長),而不是 在SoundPlayerTool.groovy
爲什麼你對標記Groovy代碼這個「時髦」,不FindBugs的工作?我知道你大概可以運行它在常規課上,但結果實際上有用嗎? – 2010-05-11 17:24:38
它仍然是儘早說,但我認爲,在一段時間內,你可以做好事找到findbugs。我將目標文件夾與編譯的Java和Groovy文件(我使用groovyc任務),所以基本上我會發現處理Java和Groovy生成的字節碼。 你可以在下一頁看到過濾AspectJ編譯的字節碼的例子:http://findbugs.sourceforge.net/manual/filter.html#d0e2050 – 2010-05-11 20:21:58