场景
Java中定义集合常量的最佳方式
在编码中,经常使用到各种集合常量,比如List(列表)常量、Set(集合)常量、Map(映射)常量等。
普通方式一般这样写:
public static final List<Integer> CONST_VALUE_LIST = Arrays.asList(1,2,3);
public static final Set<Integer> CONST_VALUE_SET = new HashSet<>(Arrays.asList(1,2,3));
public static final Map<Integer,String> CONST_VALUES_MAP;
static {
CONST_VALUES_MAP = new HashMap<>();
CONST_VALUES_MAP.put(1,"a");
CONST_VALUES_MAP.put(2,"b");
}
问题:
由于普通的集合对象(如ArrayList、HashMap、HashSet等)都是可变集合对象,即便是定义为静态常量,
也可以通过操作方法进行修改。所以,上面方法定义的集