我最近發現了FindBugs的@edu.umd.cs.findbugs.annotations.SuppressWarnings
註釋,它非常酷,並允許您基本告訴FindBugs忽略某些警告。如何在同一行代碼中抑制多個FindBugs警告
我已經成功實現了我自己的SLF4J綁定,通過遵循他們的建議採取slf4j-simple
並修改它與您自己的記錄器和記錄器工廠綁定,我很高興地說,它的作品就像一個魅力。
我只是跑找到包含此SLF4J有約束力,有抱怨的某行代碼由原始StaticLoggerBinder
作者(Ceki Gulku)寫的包錯誤:
// to avoid constant folding by the compiler, this field must *not* be final.
publicstatic String REQUESTED_API_VERSION = "1.6"; // !final
FindBugs的抱怨說,這一領域「不是最終的,但它應該是」。然而,SLF4J上的(非常)聰明的人已經想到了這一點,並且放置了上面提供的周圍評論。
所以,只是爲了讓FindBugs的閉嘴,我已經修改了代碼,按我通常的方式抑制FB警告:
@edu.umd.cs.findbugs.annotations.SuppressWarnings("MS_SHOULD_BE_FINAL")
public static String REQUESTED_API_VERSION = "1.6";
當我清理我的項目,並重新運行FindBugs的,我得到一個秒警告在同一行的代碼,這個時候抱怨:
此字段是從來不看。該字段是公開的或受保護的,因此它可能被用於未被視爲分析的一部分的類。如果不是,請考慮從班級中刪除它。
當我添加第二個警告抑制:
@edu.umd.cs.findbugs.annotations.SuppressWarnings("MS_SHOULD_BE_FINAL")
@edu.umd.cs.findbugs.annotations.SuppressWarnings("URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
public static String REQUESTED_API_VERSION = "1.6";
我從Eclipse中得到一個編譯/語法錯誤:
重複標註@SuppressWarnings。
如何在同一行代碼中抑制多個FindBugs警告?
建議:使用'SuppressFBWarnings'所以你可以象其他任何類,而不是使用完全合格的名稱將其導入。 –