Verwenden Sie den statischen Initialisierungsblock, um die Liste / den Satz statischer Felder in Java zu initialisieren

Wenn Sie den Quellcode von SpringAOP lesen, diese Art von Code Es gab aop / aspectj / AspectJExpressionPointcut.java # AspectJExpressionPointcut) (Code angepasst, um Rauschen zu entfernen).

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);
    }
}

Dies ist ein Mechanismus namens Static Initialization Block. Bisher wurde die als statisch deklarierte Initialisierung von List / Set usw. als ↓ geschrieben, aber ich bin der Meinung, dass der statische Initialisierungsblock sauberer aussieht.

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

Verwenden Sie den statischen Initialisierungsblock, um die Liste / den Satz statischer Felder in Java zu initialisieren
[Java] Gründe für die Verwendung von statischen
Zusammenfassung der Verwendung des im IE festgelegten Proxy-Sets bei der Verbindung mit Java
Liste der in Java 9 hinzugefügten Mitglieder
[Java] Verwendung von List [ArrayList]
Wie verwende ich Klassen in Java?
Liste der in Java 9 hinzugefügten Typen
Die in /lib/calendars.properties von Java jre festgelegte Millisekunde ist UTC
Verwandeln Sie ein Array von Strings in eine Liste von Ganzzahlen in Java
Mehrsprachige Unterstützung für Java Verwendung des Gebietsschemas
Ändern Sie die Liste <Optional <T >> in Java in Optional <Liste <T >>
[Java] [Maven3] Zusammenfassung der Verwendung von Maven3
Verwenden Sie jenv, um mehrere Java-Versionen zu aktivieren
[Java] Verwendung von final in der lokalen Variablendeklaration
Ändern Sie dynamisch private statische Endfelder in Java
So verbergen Sie Nullfelder als Antwort in Java
Verwendung von JQuery in Rails 6 js.erb
[Java] Implementierungsmethoden-Memo zum Festlegen des WS-Security-Benutzernamens-Tokens im SOAP-Stub von axis2
Beispielcode zum Konvertieren von List in List <String> in Java Stream
Initialisierung von for Versuchen Sie, das Java-Problem in TypeScript 5-4 zu ändern
Ich möchte ES2015 auch in Java verwenden! → (´ ・ ω ・ `)
Verwendung von CommandLineRunner im Spring Batch von Spring Boot
Zusammenfassung der Java-Kommunikations-API (1) Verwendung von Socket
Zusammenfassung der Java-Kommunikations-API (3) Verwendung von SocketChannel
Zusammenfassung der Java-Kommunikations-API (2) Verwendung von HttpUrlConnection
Verwendung von Abstract Class und Interface in Java richtig
Zusammenfassung der Implementierung von Standardargumenten in Java
Java: Verwenden Sie Stream, um den Inhalt einer Sammlung zu sortieren
Hinweise zur Verwendung regulärer Ausdrücke in Java
Verwenden Sie OpenCV mit Java
Verwenden Sie PreparedStatement in Java
Eine kurze Erklärung der fünf Arten von Java Static
Verwendung des mit Tensorflow 2.0 trainierten Modells mit Kotlin / Java
Verwendung von JSON-Daten in der WebSocket-Kommunikation (Java, JavaScript)
Einfache Möglichkeit, die Methoden- / Feldliste in Java REPL zu überprüfen
Initialisierung mit einer leeren Zeichenfolge für eine Instanz vom Typ Java-Zeichenfolge
Aufrufen und Verwenden der API in Java (Spring Boot)
Verwendung des Java-Aufzählungstyps (Enum) in Mapper XML von MyBatis
Dinge, die Sie beim Schreiben von Code in Java beachten sollten
Gründe, Servlet und JSP in der Java-Entwicklung getrennt zu verwenden
So leiten Sie den letzten Tag des Monats in Java ab
Ich habe einen RESAS-API-Client in Java erstellt
Statische Funktion, um zu überprüfen, ob der RGB-Fehler von BufferdImage innerhalb des angegebenen Verhältnisses in Java liegt
[Java] Verwendung von Map
Verwendung der Java-Klasse
[Java] Verwendung von removeAll ()
Verwendung von Java Map
So legen Sie Java-Konstanten fest
Verwendung von Java-Variablen
Listenaggregation in Java (Collectors.groupingBy)
Vorteile der statischen Java-Methode
So initialisieren Sie ein Java-Array