Heim >Java >javaLernprogramm >Detaillierte Erläuterung der Klassen und Container der Java-Initialisierungsmethode

Detaillierte Erläuterung der Klassen und Container der Java-Initialisierungsmethode

迷茫
迷茫Original
2017-03-26 15:53:422025Durchsuche

Java-Initialisierungsmethode: Klasse, Container

Initialisierungsklasse (nicht endgültig):

In der DefaultActionMapper-Klasse von Struts2:

public DefaultActionMapper() {
    prefixTrie = new PrefixTrie() { {
        put(METHOD_PREFIX, new ParameterAction() {
            public void execute(String key, ActionMapping mapping) {
                if (allowDynamicMethodCalls) {
                    mapping.setMethod(key.substring( METHOD_PREFIX.length()));
                }
            }
         }); //。。。。
     }};
}

put ist die Methode of PrefixTrie: public void put(String prefix, Object value) ;

Initialisierungscontainer:

Ursprüngliche Methode im Sammlungsframework (Sammlungen wie Liste, Karte, Satz usw.):

Set<String> myset = new HashSet<String>();
myset.add("aa");
myset.add("bb");
myset.add("cc");
myset.add("dd");
domethod(myset);

Statische Initialisierungsmethode:

private static final Set<String> myset = new HashSet<String>();
static { myset.add("aa");
    myset.add("bb");
    myset.add("cc");
    myset.add("dd");
}

Doppelte Klammersyntax erstellt und initialisiert eine neue Sammlung:

private static final Set<String> myset = new HashSet<String>() {{
    add("aa");
    add("bb");
    add("cc");
    add("dd");
}};
doMethod(new HashSet<String>() {{
    add("aa");
    add("bb");
    add("cc");
    add("dd");
}});

Die erste Klammerebene definiert tatsächlich eine interne anonyme Klasse (Anonyme innere Klasse);

Die zweite Klammerebene definiert tatsächlich eine Instanzinitialisierungsblock (Instanzinitialisierungsblock), dieser Block wird ausgeführt, wenn die interne anonyme Klasse erstellt wird.

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Klassen und Container der Java-Initialisierungsmethode. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn