inicjalizacja ImmutableMap Guava
Guava oferuje ładny skrót do inicjalizacji mapy. Jednak dostaję następujący błąd kompilatora (Eclipse Indigo), gdy moja Mapa inicjalizuje się do dziewięciu wpisów.
Metoda of(K, V, K, V, K, V, K, V, K, V)
w typie ImmutableMap
nie ma zastosowania do argumentów
(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"
);
Wiadomość wydaje się mówić, że
ImmutableMap ma maksymalny rozmiar czterech par klucza, wartości.
Oczywiście, to nie może być przypadek, ale nie mogę dowiedzieć się, co zrobić, aby Zwiększ rozmiar mojego inicjalizatora.
Czy ktoś może mi powiedzieć, czego brakuje?3 answers
Zwróć uwagę, że Twój komunikat o błędzie zawiera tylko pięć par K, V
, łącznie 10 argumentów. Klasa ImmutableMap zapewnia sześć różnych metod of()
, akceptujących od zera do pięciu par klucz-wartość. Nie istnieje przeciążenie of(...)
akceptujące parametr varags, ponieważ K
i V
mogą być różnymi typami.
Chcesz 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();
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-01-22 08:09:50
Jeśli mapa jest krótka możesz zrobić:
ImmutableMap.of(key, value, key2, value2); // ...up to five k-v pairs
Jeśli jest dłuższy to:
ImmutableMap.builder()
.put(key, value)
.put(key2, value2)
// ...
.build();
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-29 10:23:42
"put" został przestarzały , powstrzymaj się od używania, użyj .of instead
ImmutableMap<String, String> myMap = ImmutableMap.of(
"city1", "Seattle",
"city2", "Delhi"
);
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-06-26 23:17:34