Java ImmutableMap中是否有with()方法?
我正在观看视频(),发现我们可以使用with()方法初始化ImmutableMap。见下文: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)
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);