ImmutableMap里面有with()方法吗?
Is there a with() method inside ImmutableMap?
我正在看视频(https://www.youtube.com/watch?v=ZeO_J2OcHYM),发现我们可以使用 with() 方法初始化 ImmutableMap。见下文:
public static final ImmutableMap<String, Integer>
ENGLISH_TO_INT = ImmutableMap
.with("four", 4)
.with("eight", 8)
.with("fifteen", 15)
.with("sixteen", 16)
.with("twenty-three", 23)
.with("forty-two", 42)
.build();
但是,当我检查ImmutableMap 的API 时,我没有找到with() 方法。该方法是否已弃用?
我猜他们弃用了它,转而支持显式创建构建器,并使用 put
在 Map
上镜像同名方法。我正在查看 release notes,但我还没有发现任何明确的内容。那个视频很旧,Guava 有更新的版本。
根据Javadoc, it has been there since version 2.0
, when it was merged from google-collections。仔细看视频发现他们是用版本 0.9
来演示的。
查看 releases of google-collections,我没有看到任何列出的更改,也没有在任何 Javadoc 中看到它,所以我猜它没有进入任何官方发布。
如果您需要用一堆条目构造一个 ImmutableMap
,您可以使用 builder()
调用。还有几种 of()
方法可以生成有限大小的地图(我想是 5 个?)。
public static final ImmutableMap<String, Integer>
ENGLISH_TO_INT = ImmutableMap.<String, Integer>builder()
.put("four", 4)
.put("eight", 8)
.put("fifteen", 15)
.put("sixteen", 16)
.put("twenty-three", 23)
.put("forty-two", 42)
.build();
我认为您正在寻找 of() method
public static final ImmutableMap<String, Integer> ENGLISH_TO_INT =
ImmutableMap.of("four", 4, "eight", 8);
我正在看视频(https://www.youtube.com/watch?v=ZeO_J2OcHYM),发现我们可以使用 with() 方法初始化 ImmutableMap。见下文:
public static final ImmutableMap<String, Integer>
ENGLISH_TO_INT = ImmutableMap
.with("four", 4)
.with("eight", 8)
.with("fifteen", 15)
.with("sixteen", 16)
.with("twenty-three", 23)
.with("forty-two", 42)
.build();
但是,当我检查ImmutableMap 的API 时,我没有找到with() 方法。该方法是否已弃用?
我猜他们弃用了它,转而支持显式创建构建器,并使用 put
在 Map
上镜像同名方法。我正在查看 release notes,但我还没有发现任何明确的内容。那个视频很旧,Guava 有更新的版本。
根据Javadoc, it has been there since version 2.0
, when it was merged from google-collections。仔细看视频发现他们是用版本 0.9
来演示的。
查看 releases of google-collections,我没有看到任何列出的更改,也没有在任何 Javadoc 中看到它,所以我猜它没有进入任何官方发布。
如果您需要用一堆条目构造一个 ImmutableMap
,您可以使用 builder()
调用。还有几种 of()
方法可以生成有限大小的地图(我想是 5 个?)。
public static final ImmutableMap<String, Integer>
ENGLISH_TO_INT = ImmutableMap.<String, Integer>builder()
.put("four", 4)
.put("eight", 8)
.put("fifteen", 15)
.put("sixteen", 16)
.put("twenty-three", 23)
.put("forty-two", 42)
.build();
我认为您正在寻找 of() method
public static final ImmutableMap<String, Integer> ENGLISH_TO_INT =
ImmutableMap.of("four", 4, "eight", 8);