Ho una classe Java come questo:Scrivi nel campo statico: in questo caso FindBugs è errato?
public class Foo {
public static int counter = 0;
public void bar(int counter) {
Foo.counter = counter;
}
}
FindBugs mi avverte di scrivere al campo statico counter
tramite il metodo di istanza bar
. Tuttavia, se cambio il codice in:
public class Foo {
public static int counter = 0;
public static void setCounter(int counter) {
Foo.counter = counter;
}
public void bar(int counter) {
setCounter(counter);
}
}
Quindi FindBugs non si lamenterà. Non è sbagliato? Sto ancora scrivendo su un campo statico da un metodo di istanza, solo tramite un metodo statico, no?
Fammi sapere quando diventano strumenti automatizzati in grado di rilevare tutti i tipi di bug di programmazione, in modo da poter cominciare a cercare una nuova carriera. – NullUserException
Ma in questo caso è solo un tipo. : P Sono nuovo di quello strumento e non so ancora quanto siano affidabili i suoi risultati. :) – htorque
Se FindBugs emette un avviso, è meglio esaminare il problema. Ma questo non significa che se FindBugs non emette alcun avviso, il codice è perfetto e privo di errori. –