En habas POJO Java tal código puede ser beneficioso, especialmente con colecciones:¿Es una buena práctica inicializar campos dentro de un captador de entidades JPA?
class POJO {
private Collection<X> col;
public Collection<X> getCol() {
if (col == null)
col = new SomeCollection<X>();
return col;
}
}
Esto hace posible que el código usando POJO
llamar pojo.getCol().isEmpty()
sin una comprobación adicional nula, con lo que el código más claro.
Supongamos que la clase POJO
es una entidad JPA, ¿todavía es seguro hacerlo? Al inicializar la colección de nula a vacía, los datos persistentes no se modificarán, pero aún así, estamos modificando el objeto y, por lo tanto, el proveedor de persistencia puede ejecutar algunos efectos secundarios al enjuagar el contexto de persistencia. ¿A qué nos arriesgamos? Portabilidad tal vez?
Gracias, eso es lo que he estado buscando, una advertencia de alguien que se quemó haciendo eso. Tenía la corazonada de que podría estar mal, solo que quería asegurarme de no fantasear. – MaDa
seguro. Terminamos pasando 2 días rastreando donde el objeto se estaba ensuciando. Fue bastante doloroso. – digitaljoel