如何禁止显示字段或局部变量的 FindBugs 警告?
2022-09-01 13:14:37
我想禁止特定字段或局部变量的FindBugs警告。FindBugs 记录了 其注释 [1] 的 、、 、 、但是,对我来说,注释字段不起作用,只有当我注释了警告被抑制的方法时。Target
Type
Field
Method
Parameter
Constructor
Package
edu.umd.cs.findbugs.annotations.SuppressWarning
对我来说,注释整个方法似乎很宽泛。有没有办法抑制特定字段上的警告?还有另一个相关的问题[2],但没有答案。
[1] http://findbugs.sourceforge.net/manual/annotations.html
[2] 在 Eclipse 中禁止显示 FindBugs 警告
演示代码:
public class SyncOnBoxed
{
static int counter = 0;
// The following SuppressWarnings does NOT prevent the FindBugs warning
@edu.umd.cs.findbugs.annotations.SuppressWarnings(value="DL_SYNCHRONIZATION_ON_BOXED_PRIMITIVE")
final static Long expiringLock = new Long(System.currentTimeMillis() + 10);
public static void main(String[] args) {
while (increment(expiringLock)) {
System.out.println(counter);
}
}
// The following SuppressWarnings prevents the FindBugs warning
@edu.umd.cs.findbugs.annotations.SuppressWarnings(value="DL_SYNCHRONIZATION_ON_BOXED_PRIMITIVE")
protected static boolean increment(Long expiringLock)
{
synchronized (expiringLock) { // <<< FindBugs warning is here: Synchronization on Long in SyncOnBoxed.increment()
counter++;
}
return expiringLock > System.currentTimeMillis(); // return false when lock is expired
}
}