Actuellement, j'utilise l'enregistreur dans mon projet de la manière suivante:
private static final Logger LOGGER;
static{
LOGGER = logger.getLogger();
}
J'ai reçu un examen du code pour utiliser un bloc statique pour initialiser la variable de l'enregistreur. On m'a dit d'initialiser la variable logger dans l'instruction de déclaration elle-même.
private static final Logger LOGGER = Logger.getLogger();
J'essaie de comprendre quelle différence cela fera-t-il si je ne l'initialise pas dans le bloc statique. Je veux savoir si c'est une pratique.
Réponses:
À l'exception de certains cas d'angle vraiment bizarres impliquant la séquence d'initialiseurs, les deux alternatives fonctionneront exactement de la même manière.
Cependant, l'initialisation du droit d'instance dans la déclaration est plus courte et plus familière, et devrait être préférée pour cette seule raison.
Les blocs d'initialisation statiques sont une construction quelque peu exotique et ne doivent être utilisés que lorsqu'ils fournissent réellement une valeur ajoutée, par exemple lorsque vous devez gérer des exceptions.
la source
Map.of
méthodes de Java 9 devraient aider à cela.Map.of
renvoie cependant une carte immuable, donc si vous en avez réellement besoin,HashMap
vous devez toujours le faire à l'ancienne. Ou quelque chose commenew HashMap(Map.of(...))