我有一個Java類是這樣的:寫入靜態字段 - FindBugs在這種情況下是錯誤的嗎?
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不會抱怨。這不是錯的嗎?我仍然從一個實例方法寫靜態字段,只是通過靜態方法,我不是嗎?
這個決定背後的理由讓我知道什麼時候自動工具成爲能夠檢測各種編程錯誤的,這樣我就可以開始尋找新的職業生涯。 – NullUserException
但在這種情況下它只是一種。 :P我對這個工具很陌生,並且還不知道它的結果有多可靠。 :) – htorque
如果FindBugs發出警告,最好看看問題。但是,這並不意味着如果FindBugs不會發出任何警告,那麼您的代碼是完美無缺的。 –