1. 程式人生 > >Java集合初始化賦值等相關問題

Java集合初始化賦值等相關問題

以下來舉幾個例子:

 Map map= new HashMap<String, String>() {{
            put("key1", "value1");
            put("key2", "value2");
            put("key3", "value3");
        }};
List<String> stringList=new ArrayList<String>(){{
            add("str1");
            add("str2");
            add("str3");
        }};
這種語法叫做動態初始化塊

第一個大括號代表匿名內部類

第二個大括號代表初始化塊

java中初始化循序

1.靜態初始化塊

2.初始化塊

3.建構函式

使用動態初始化塊在spring管理的容器中容易出錯,錯誤代表:空指標異常,序列化異常,建構函式異常

建構函式異常出現在在動態初始化塊賦值中使用了spring容器注入的物件內參數

序列化異常出現在controller層與service層RPC互動時提示空指標並出現序列化異常,經後期編碼轉換後發現在controller接收到的service中賦值的Map為NULL