Utiliser un bloc d'initialisation statique pour initialiser la liste / l'ensemble de champs statiques en Java

Si vous lisez le code source de SpringAOP, [ce type de code](http://grepcode.com/file/repo1.maven.org/maven2/org.springframework/spring-aop/4.2.0.RELEASE/org/springframework/ Il y avait aop / aspectj / AspectJExpressionPointcut.java # AspectJExpressionPointcut) (code ajusté pour supprimer le bruit).

AspectJExpressionPointcut.java


public class AspectJExpressionPointcut  {
    private static final Set<PointcutPrimitive> SUPPORTED_PRIMITIVES = new HashSet();

    static {
        SUPPORTED_PRIMITIVES.add(PointcutPrimitive.EXECUTION);
        SUPPORTED_PRIMITIVES.add(PointcutPrimitive.ARGS);
        SUPPORTED_PRIMITIVES.add(PointcutPrimitive.REFERENCE);
        SUPPORTED_PRIMITIVES.add(PointcutPrimitive.THIS);
        SUPPORTED_PRIMITIVES.add(PointcutPrimitive.TARGET);
        SUPPORTED_PRIMITIVES.add(PointcutPrimitive.WITHIN);
        SUPPORTED_PRIMITIVES.add(PointcutPrimitive.AT_ANNOTATION);
        SUPPORTED_PRIMITIVES.add(PointcutPrimitive.AT_WITHIN);
        SUPPORTED_PRIMITIVES.add(PointcutPrimitive.AT_ARGS);
        SUPPORTED_PRIMITIVES.add(PointcutPrimitive.AT_TARGET);
        logger = LogFactory.getLog(AspectJExpressionPointcut.class);
    }
}

Il s'agit d'un mécanisme appelé Bloc d'initialisation statique. Jusqu'à présent, l'initialisation de List / Set etc. déclarée comme statique était écrite comme ↓, mais je pense que le bloc d'initialisation statique semble plus propre.

public class Hoge {
    private static final Set<PointcutPrimitive> SUPPORTED_PRIMITIVES = new HashSet(){{
        add(PointcutPrimitive.EXECUTION);
        add(PointcutPrimitive.ARGS);
        add(PointcutPrimitive.REFERENCE);
        add(PointcutPrimitive.THIS);
        add(PointcutPrimitive.TARGET);
        add(PointcutPrimitive.WITHIN);
        add(PointcutPrimitive.AT_ANNOTATION);
        add(PointcutPrimitive.AT_WITHIN);
        add(PointcutPrimitive.AT_ARGS);
        add(PointcutPrimitive.AT_TARGET);
    }};
}

Recommended Posts

Utiliser un bloc d'initialisation statique pour initialiser la liste / l'ensemble de champs statiques en Java
[java] Raisons d'utiliser statique
Résumé de l'utilisation du jeu de proxy dans IE lors de la connexion avec Java
Liste des membres ajoutés dans Java 9
[Java] Comment utiliser List [ArrayList]
Comment utiliser les classes en Java?
Liste des types ajoutés dans Java 9
La milliseconde définie dans /lib/calendars.properties de Java jre est UTC
Convertir un tableau de chaînes en une liste d'entiers en Java
Prise en charge multilingue de Java Comment utiliser les paramètres régionaux
Remplacez List <Optional <T >> par Optional <List <T >> en Java
[Java] [Maven3] Résumé de l'utilisation de Maven3
Utilisez jenv pour activer plusieurs versions de Java
[Java] Utilisation de final dans la déclaration de variable locale
Modifier dynamiquement les champs finaux statiques privés en Java
Comment masquer les champs nuls en réponse en Java
Comment utiliser JQuery dans Rails 6 js.erb
[Java] Mémo de méthode d'implémentation pour définir le jeton de nom d'utilisateur WS-Security dans SOAP Stub of axis2
Exemple de code pour convertir List en List <String> dans Java Stream
Initialisation de for Essayez de changer le problème Java en TypeScript 5-4
Je veux aussi utiliser ES2015 avec Java! → (´ ・ ω ・ `)
Comment utiliser CommandLineRunner dans Spring Batch of Spring Boot
Résumé de l'API de communication Java (1) Comment utiliser Socket
Résumé de l'API de communication Java (3) Comment utiliser SocketChannel
Résumé de l'API de communication Java (2) Comment utiliser HttpUrlConnection
Utilisation correcte de la classe abstraite et de l'interface en Java
Résumé de la mise en œuvre des arguments par défaut en Java
Java: utilisez Stream pour trier le contenu d'une collection
Remarques sur l'utilisation des expressions régulières en Java
Utiliser OpenCV avec Java
Utiliser PreparedStatement en Java
Une explication rapide des cinq types de statique Java
Comment utiliser le modèle entraîné Tensorflow 2.0 avec Kotlin / Java
Comment utiliser les données JSON dans la communication WebSocket (Java, JavaScript)
Un moyen simple de vérifier la liste des méthodes / champs dans Java REPL
Initialisation avec une chaîne vide vers une instance de type Java String
Comment appeler et utiliser l'API en Java (Spring Boot)
Comment utiliser le type d'énumération Java (Enum) dans Mapper XML de MyBatis
Éléments à prendre en compte lors de l'écriture de code en Java
Raisons d'utiliser séparément Servlet et JSP dans le développement Java
Comment dériver le dernier jour du mois en Java
J'ai créé un client RESAS-API en Java
Fonction statique pour vérifier si l'erreur RVB de BufferdImage est dans le rapport spécifié en Java
[Java] Comment utiliser Map
Comment utiliser la classe Java
[Java] Comment utiliser removeAll ()
Comment utiliser Java Map
Comment définir des constantes Java
Comment utiliser les variables Java
Agrégation de listes en Java (Collectors.groupingBy)
Avantages de la méthode statique Java
Comment initialiser un tableau Java