Java ImmutableMap中是否有with()方法?

Java ImmutableMap中是否有with()方法?,java,guava,immutable-collections,Java,Guava,Immutable Collections,我正在观看视频(),发现我们可以使用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()方法初始化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();
公共静态最终不可变映射
ENGLISH_TO_INT=不可变映射
.带(“四”,4)
.带(“八”,8)
.带(“十五”,15)
.带(“十六”,16)
.带(“二十三”,23)
.带(“四十二”,42)
.build();

但是,当我检查ImmutableMap的API时,我没有找到with()方法。该方法是否已被弃用?

我猜他们弃用该方法是为了明确创建一个生成器,并使用
put
映射上镜像同名的方法。我正在查看,但还没有发现任何明确的信息。这段视频很旧,番石榴的版本更新了很多

根据,它自2.0版合并后就一直存在。仔细看一下视频显示,他们正在使用版本
0.9
进行演示

查看,我没有看到任何列出的更改,也没有在任何Javadoc中看到它,所以我猜它没有进入任何官方版本

如果需要用一组条目构造一个
ImmutableMap
,可以使用
builder()
调用。还有几种
of()
方法可以生成有限大小的贴图(我想是5?)

公共静态最终不可变映射
ENGLISH_TO_INT=ImmutableMap.builder()
.put(“四”,4)
.put(“八”,8)
.put(“十五”,15)
.put(“十六”,16)
.put(“二十三”,23)
.put(“四十二”,42)
.build();

我想你在找

public static final ImmutableMap ENGLISH\u TO\u INT=
不可变地图(四、四、八、八);

对不起,我已经添加了代码,不推荐的方法仍然存在。你确定他们说的是番石榴吗?什么版本?完全按照您编写它的方式,它不能作为第一次使用
with
需要一个
静态
方法,并且它不能是
静态
。这就是为什么需要调用
builder()
。还要注意的是,有一个
of
的方法最多可以接受4对。我觉得我不知道如何在视频中添加注释来解释“这个s***很旧,改为这样做”。酷,谢谢,@KevinBourrillion,很高兴得到演示者的回复:-)顺便说一句,UniqueList也没有发布,对吗?因为LinkedHashSet是用Java编写的。谢谢,它是有意义的。@injoy我认为它没有进入任何版本。我在回答中补充了一些细节。
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();
public static final ImmutableMap<String, Integer> ENGLISH_TO_INT =
ImmutableMap.of("four", 4, "eight", 8);