java ImmutableMap使用

Posted Arvin_Wong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java ImmutableMap使用相关的知识,希望对你有一定的参考价值。


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的使用场景:

适合

  1. 确定性的配置, 比如根据不同的key值得到不同的请求url
  2. 写单元测试

不适合

  1. key, value为未知参数, 可能有null产生的情况

 

以上是关于java ImmutableMap使用的主要内容,如果未能解决你的问题,请参考以下文章

java ImmutableMap使用

java 在另一个ImmutableMap上叠加/合并ImmutableMap

解决Android Studio com.google.common.collect.ImmutableMap.hashCode 造成的StackOverflowError异常

解决Android Studio com.google.common.collect.ImmutableMap.hashCode 造成的StackOverflowError异常

解决Android Studio com.google.common.collect.ImmutableMap.hashCode 造成的StackOverflowError异常

解决Android Studio com.google.common.collect.ImmutableMap.hashCode 造成的StackOverflowError异常