以下来举几个例子:
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
转载请注明原文地址: https://ju.6miu.com/read-1601.html