【发布时间】:2012-11-03 12:57:16
【问题描述】:
我有一个这样的 Java 类:
public class Foo {
public static int counter = 0;
public void bar(int counter) {
Foo.counter = counter;
}
}
FindBugs 警告我通过实例方法 bar 写入静态字段 counter。但是,如果我将代码更改为:
public class Foo {
public static int counter = 0;
public static void setCounter(int counter) {
Foo.counter = counter;
}
public void bar(int counter) {
setCounter(counter);
}
}
那么 FindBugs 就不会抱怨了。那不是错了吗?我仍在从实例方法写入静态字段,只是通过静态方法,不是吗?
【问题讨论】:
-
让我知道自动化工具何时能够检测各种编程错误,这样我就可以开始寻找新的职业了。
-
但在这种情况下它只是一种。 :P 我是那个工具的新手,还不知道它的结果有多可靠。 :)
-
如果 FindBugs 发出警告,你最好看看问题所在。但这并不意味着如果 FindBugs 没有发出任何警告,那么您的代码就是完美且没有错误的。
标签: java static-methods static-members findbugs