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"
);
Появляется сообщение о том, что
ImmutableMap имеет максимальный размер четырех пар ключ, значение.
Очевидно, этого не может быть, но я не могу понять, что делать, чтобы увеличить размер моего инициализатора.
Может кто подскажет, чего не хватает?
источник
myMap
для каждого.put
public static final
и он по-прежнему работает, нет необходимости в вспомогательном методе илиstatic{}
инициализаторе!если карта короткая, вы можете:
ImmutableMap.of(key, value, key2, value2); // ...up to five k-v pairs
Если длиннее, то:
ImmutableMap.builder() .put(key, value) .put(key2, value2) // ... .build();
источник
ImmutableMap.of
статическую фабрику для пяти пар ключ-значение. Тогда вам нужно использовать строитель."put" устарел , воздержитесь от его использования, используйте вместо него .of
ImmutableMap<String, String> myMap = ImmutableMap.of( "city1", "Seattle", "city2", "Delhi" );
источник