我正在观看视频(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()方法。该方法是否已被弃用?
答案 0 :(得分:3)
我猜他们不赞成使用显式创建构建器,并使用put
镜像Map
上的同名方法。我正在查看release notes,但我还没有发现任何明确的内容。该视频已经过时了,而Guava的版本更新。
根据Javadoc,自version 2.0
合并0.9
以来,它一直在那里。仔细观察视频会发现他们正在使用版本ImmutableMap
进行演示。
查看google-collections,我没有看到任何列出的更改,我也没有在任何Javadoc中看到它,所以我猜它没有进入任何正式版本。
如果您需要构建包含大量条目的builder()
,则可以使用of()
调用。还有几种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();
方法可以生成有限大小的地图(我认为5?)。
Try(
args(j).toInt
) {
case Success(i) => //do something with int i
case Failure(ex) => //error message
}
答案 1 :(得分:0)
我认为您正在寻找of() method
public static final ImmutableMap<String, Integer> ENGLISH_TO_INT =
ImmutableMap.of("four", 4, "eight", 8);