Heim >Java >javaLernprogramm >Detaillierte Erläuterung der Klassen und Container der Java-Initialisierungsmethode
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!