Java初始化方法:類別、容器
初始化類別(非final):
Struts2的DefaultActionMapper類別中:
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是PrefixTrie的方法:public void put(String prefix, Object value) ;
初始化容器:
集合框架中(collections, 如list, map, set等)原始方法:
Set<String> myset = new HashSet<String>(); myset.add("aa"); myset.add("bb"); myset.add("cc"); myset.add("dd"); domethod(myset);
靜態初始的方法:
private static final Set<String> myset = new HashSet<String>(); static { myset.add("aa"); myset.add("bb"); myset.add("cc"); myset.add("dd"); }
雙括弧語法(double-brace syntax)建立並初始化一個新的集合:
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"); }});
#第一層括弧#實際上是定義了一個內部匿名類別 (Anonymous Inner Class);
第二層括弧 其實是一個實例初始化區塊 ( instance initializer block),這個區塊在內部匿名類別建構時被執行。
以上是Java初始化方法類別與容器詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!