在实际工作中会用到一些固定内容的集合作为常量,在创建的时候便赋值进去。
这样的需求第一想到的思路是写个一个匿名内部类,然后加一个代码块,在创建的时候执行代码块的内容。
具体代码如下:
package com.example.demo.main;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
public class Demo {
//map
private static final Map<String,String> STRING_STRING_MAP=new HashMap<String, String>(){{
put("name","kexuexiong");
put("age","27");
}};
//list
private static final List<String> STRING_LIST=new LinkedList<String>(){{
add("xiong");
add("kexue");
}};
}
还有一个安全的需求,将以上的集合改不可以进行添加删除操作,以防内容被修改。具体代码如下:
//map
private static final Map<String,String> STRING_STRING_MAP=Collections.unmodifiableMap(new HashMap<String, String>(){{
put("name","kexuexiong");
put("age","27");
}});
//list
private static final List<String> STRING_LIST= Collections.unmodifiableList(new LinkedList<String>(){{
add("xiong");
add("kexue");
}});
添加则报异常: