java dictionary guava

java - Inicializando un Mapa Inmutable de Guava



dictionary (2)

Tenga en cuenta que su mensaje de error solo contiene cinco pares K, V , 10 argumentos en total. Esto es por diseño; la clase ImmutableMap proporciona seis métodos diferentes of() , aceptando entre cero y seis pares clave-valor. No hay una sobrecarga of(...) acepte un parámetro de varags porque K y V pueden ser de tipos diferentes.

Desea un 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 ofrece un buen atajo para inicializar un mapa. Sin embargo, recibo el siguiente error de compilación (Eclipse Indigo) cuando mi mapa se inicializa en nueve entradas.

El método of(K, V, K, V, K, V, K, V, K, V) en el tipo ImmutableMap no es aplicable para los argumentos (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" );

El mensaje parece decir que

Un ImmutableMap tiene un tamaño máximo de cuatro pares de clave, valor.

Obviamente, este no puede ser el caso, pero no puedo imaginar qué hacer para aumentar el tamaño de mi inicializador.

¿Puede alguien decirme qué falta?


si el mapa es corto, puedes hacer:

ImmutableMap.of(key, value, key2, value2); // ...up to five k-v pairs

Si es más largo entonces:

ImmutableMap.builder() .put(key, value) .put(key2, value2) // ... .build();