Méthode d'initialisation Java : classe, conteneur
Classe d'initialisation (non finale) :
Dans la classe DefaultActionMapper de 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 est la méthode of PrefixTrie : public void put(String prefix, Object value) ;
Conteneur d'initialisation :
Méthode originale dans le cadre de collection (collections, telles que liste, carte, ensemble, etc.) :
Set<String> myset = new HashSet<String>(); myset.add("aa"); myset.add("bb"); myset.add("cc"); myset.add("dd"); domethod(myset);
Méthode d'initialisation statique :
private static final Set<String> myset = new HashSet<String>(); static { myset.add("aa"); myset.add("bb"); myset.add("cc"); myset.add("dd"); }
La syntaxe à double accolade crée et initialise une nouvelle collection :
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"); }});
Le premier niveau de parenthèses définit en fait une classe anonyme interne (Anonymous Inner Class)
Le deuxième niveau de parenthèses définit en fait An bloc d'initialisation d'instance (bloc d'initialisation d'instance), ce bloc est exécuté lors de la construction de la classe anonyme interne.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!