我最近发现了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'所以你可以象其他任何类,而不是使用完全合格的名称将其导入。 –