Tengo una clase que se parece a esto, y findbugz se queja del 'escribir en el campo estático del método de instancia' (initialize()
y killStaticfield()
). No puedo configurar el campo estático en el ctor.¿Cuál es la mejor manera de corregir este 'write to static field from instance method' findbugs warning?
- ¿Cuál es la mejor solución para este problema?
¿Sería suficiente con poner staticField en una AtomicReference?
public class Something { private static SomeClass staticField = null; private AnotherClass aClass; public Something() { } public void initialize() { //must be ctor'd in initialize aClass = new AnotherClass(); staticField = new SomeClass(aClass); } public void killStaticField() { staticField = null; } public static void getStaticField() { return staticField; } }
¿Por qué necesita ser 'static' en primer lugar? ¿Cuál es el requisito funcional? ¿Comprende de alguna manera qué significa "estático"? ¿Dígalo con sus propias palabras? – BalusC
Sí, por supuesto que sé lo que significa estático; y no, no necesito demostrártelo. – darrickc
Para responder a su pregunta, este campo es estático porque el método get debe ser estático para que otros objetos puedan acceder a staticField sin tener una referencia a un objeto Something. – darrickc