初始化Guava ImmutableMap

番石榴提供了一个不错的快捷方式来初始化地图。但是,当我的地图初始化为9个条目时,出现以下编译器错误(Eclipse Indigo)。

of(K, V, K, V, K, V, K, V, K, V)类型中的方法ImmutableMap不适用于参数 (String, String,

String, String, String, String, String, String, String, String, String,

String, String, String, String, String, String, String)

ImmutableMap<String,String> myMap = ImmutableMap.of(

"key1", "value1",

"key2", "value2",

"key3", "value3",

"key4", "value4",

"key5", "value5",

"key6", "value6",

"key7", "value7",

"key8", "value8",

"key9", "value9"

);

该消息似乎表明

ImmutableMap的最大大小为四对键值。

显然,情况并非如此,但我不知道该怎么做才能增加初始化程序的大小。

有人可以告诉我缺少了什么吗?

回答:

请注意,您的错误消息仅包含五K,

V对,总共10个参数。这是设计使然;ImmutableMap类提供了六种不同的of()方法,接受零到五个键值对。没有of(...)重载接受varags参数,因为KV可以是不同的类型。

您想要一个ImmutableMap.Builder

ImmutableMap<String,String> myMap = ImmutableMap.<String, String>builder()

.put("key1", "value1")

.put("key2", "value2")

.put("key3", "value3")

.put("key4", "value4")

.put("key5", "value5")

.put("key6", "value6")

.put("key7", "value7")

.put("key8", "value8")

.put("key9", "value9")

.build();

以上是 初始化Guava ImmutableMap 的全部内容, 来源链接: utcz.com/qa/401428.html

回到顶部