Java logger: inizializzazione del blocco statico o inizializzazione nella dichiarazione delle variabili

14

Attualmente sto utilizzando il logger nel mio progetto nel modo seguente:

private static final Logger LOGGER;

static{
  LOGGER = logger.getLogger();
}

Ho ricevuto una revisione del codice per l'utilizzo del blocco statico per inizializzare la variabile del logger. Mi è stato detto di inizializzare la variabile del logger nella dichiarazione stessa.

private static final Logger LOGGER = Logger.getLogger();

Sto cercando di capire quale differenza farà se non la inizializzo nel blocco statico. Voglio sapere se questa è una pratica.

    
posta Innocuous 03.07.2017 - 14:15
fonte

1 risposta

47

Ad eccezione di alcuni casi angolari davvero bizzarri che riguardano la sequenza di inizializzatori, le due alternative funzioneranno esattamente allo stesso modo.

Tuttavia, l'inizializzazione dell'istanza giusta nella dichiarazione è più breve e più familiare e dovrebbe essere preferita solo per tale motivo.

I blocchi di inizializzazione statici sono un costrutto un po 'esotico e dovrebbero essere utilizzati solo quando forniscono effettivamente un valore aggiunto, ad esempio quando è necessario gestire le eccezioni.

    
risposta data 03.07.2017 - 15:04
fonte

Leggi altre domande sui tag