Propiedades de Java Bean de inicialización profunda [cerrado]
Pregunta
¿Te molestas en inicializar los valores de java bean? Di, por ejemplo:
([g | s] éteres omitidos)
public class SomeClass {
private String foo;
private Date bar;
private Baz someObject;
}
(Sí, este es un POJO que se usa como bean en lugar de Java Bean en el sentido más estricto)
En el constructor vacío, ¿inicializa estos miembros o simplemente no hace nada? Del mismo modo, ¿Baz inicializaría también a sus miembros?
¿O simplemente los dejas como nulos?
Solución
Depende del caso de uso.
Si utilizo las propiedades como dependencias de servicio, deberían inicializarse para que funcionen correctamente (por cierto, Spring DI tiene una forma práctica de hacerlo).
Si uso bean como parte del modelo de dominio, normalmente es un estado ilegal tener alguna propiedad nula. Es posible que no se inicialice en el inicio, pero me molesto en lanzar la excepción IllegalStateException si algún campo es nulo durante la operación comercial.
Otros consejos
Si es posible, inicializo las variables en la declaración si es necesario inicializarlas. Estas declaraciones de inicialización en realidad terminan siendo llamadas desde el constructor.
Generalmente los dejo como nulos si no hay una razón convincente para inicializarlos.