Guava offers a nice shortcut for initializing a map. However I get the following compiler error (Eclipse Indigo) when my map initializes to nine entries.
The method of(K, V, K, V, K, V, K, V, K, V)
in the type ImmutableMap
is not applicable for the arguments
(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"
);
The message appears to say that
An ImmutableMap has a maximum size of four pairs of key,value.
Obviously, this cannot be the case but I can't figure out what to do to increase the size of my initializer.
Can someone tell me what is missing?
This question is related to
java
dictionary
guava
if the map is short you can do:
ImmutableMap.of(key, value, key2, value2); // ...up to five k-v pairs
If it is longer then:
ImmutableMap.builder()
.put(key, value)
.put(key2, value2)
// ...
.build();
"put" has been deprecated, refrain from using it, use .of instead
ImmutableMap<String, String> myMap = ImmutableMap.of(
"city1", "Seattle",
"city2", "Delhi"
);
Source: Stackoverflow.com