У меня есть такой класс Java:
public class Foo {
public static int counter = 0;
public void bar(int counter) {
Foo.counter = counter;
}
}
FindBugs предупреждает меня о записи в статическое поле counter
через метод экземпляра bar
. Однако, если я изменю код на:
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 не будет жаловаться. Разве это не неправильно? Я все еще пишу в статическое поле из метода экземпляра, только через статический метод, не так ли?