Java初始化方法:類、容器,java初始化容器
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),這個塊在內部匿名類構造時被執行。