use*_*724 131 java dictionary guava
Guava为初始化地图提供了一个很好的快捷方式.但是,当我的地图初始化为九个条目时,我得到以下编译器错误(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"
);
Run Code Online (Sandbox Code Playgroud)
该消息似乎表明了这一点
ImmutableMap的最大大小为四对键值.
显然,情况并非如此,但我无法弄清楚如何增加初始化程序的大小.
有人能告诉我缺少什么吗?
Jon*_*eet 240
请注意,您的错误消息仅包含五K, V对,总共10个参数.这是设计的; ImmutableMap类提供了六种不同的of()方法,接受零到五个键值对.没有of(...)接受varags参数的重载,因为K它V可以是不同的类型.
你想要一个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();
Run Code Online (Sandbox Code Playgroud)
Nat*_*ger 60
如果地图很短,你可以这样做:
ImmutableMap.of(key, value, key2, value2); // ...up to five k-v pairs
Run Code Online (Sandbox Code Playgroud)
如果它更长,那么:
ImmutableMap.builder()
.put(key, value)
.put(key2, value2)
// ...
.build();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
104927 次 |
| 最近记录: |