ImmutableMap:一個不可變集合
java中的Immutable對象:
簡單地說,如果一個對象實例不能被更改就是一個Immutable的對象,Java SDK提供的大量值對象,比如String等都是Immutable的對象。
創建ImmutableMap:
Map<String,Object> immutableMap = new ImmutableMap.Builder<String,Object>().build();
在創建時放值:
Map<String,Object> immutableMap = new ImmutableMap.Builder<String,Object>()
.put("k1","v1")
.put("k2","v2")
.build();
創建后不可變:
immutableMap.put("k1","v3");//會拋出java.lang.UnsupportedOperationException
ImmutableMap中key和value均不能為null,放入null值會拋出NPE
ImmutableMap的使用場景:
適合
確定性的配置, 比如根據不同的key值得到不同的請求url
寫單元測試
不適合
key, value為未知參數, 可能有null產生的情況