如何使用番石榴制作给定地图的不可变地图?

How to make an immutable map given a map using Guava?

给定一个地图,我如何使用 Guava 制作一个不可变的地图?我知道 Collections.unmodifiableMap 的一种方法,但是还有其他使用 Guava 的方法吗?

Map<String, String> realMap = Maps.newHashMap();
realMap.put("A", "B");

// any other alternative?
Map<String, String> unmodifiableMap = Collections.unmodifiableMap(realMap);

我正在用一些条目填充我的 realMap,然后我需要使它不可变,这样就没有人可以修改它。我只是想看看是否有使用 Guava 的替代方法?我做了一些搜索,但找不到它。

您正在寻找 ImmutableMap.copyOf():

ImmutableMap<String, String> immutableMap = ImmutableMap.copyOf(realMap);

请记住,与仅为其参数创建 wrapperunmodifiableMap() 相反,这实际上将其复制到新地图。这可能意味着轻微的性能影响,但也意味着不可能通过 realMap.

意外修改地图