Actualmente estoy usando logger en mi proyecto de la siguiente manera:
private static final Logger LOGGER;
static{
LOGGER = logger.getLogger();
}
Recibí una revisión de código para usar el bloque estático para inicializar la variable del registrador. Me dijeron que inicializara la variable del registrador en la declaración de la declaración.
private static final Logger LOGGER = Logger.getLogger();
Estoy tratando de averiguar qué diferencia hará si no lo inicializo en el bloque estático. Quiero saber si esto es una práctica.
Respuestas:
A excepción de algunos casos de esquina realmente extraños que involucran la secuencia de inicializadores, las dos alternativas funcionarán exactamente igual.
Sin embargo, inicializar la instancia directamente en la declaración es más corto y más familiar, y debería preferirse solo por ese motivo.
Los bloques de inicialización estática son una construcción algo exótica y solo deben usarse cuando realmente proporcionan un valor agregado, como cuando necesita manejar excepciones.
fuente
Map.of
métodos de Java 9 deberían ayudar con eso.Map.of
embargo, @cbojar devuelve un mapa inmutable, por lo que si realmente necesita unoHashMap
, aún debe hacerlo a la antigua usanza. O algo asínew HashMap(Map.of(...))