구아바 ImmutableMap 초기화
구아바는지도를 초기화하기위한 좋은 지름길을 제공합니다. 그러나 내지도가 9 개의 항목으로 초기화되면 다음 컴파일러 오류 (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의 최대 크기는 키, 값의 4 쌍입니다.
분명히, 이것은 사실이 될 수 없지만 초기화 장치의 크기를 늘리기 위해 무엇을 해야할지 알 수 없습니다.
누군가가 누락 된 것을 말해 줄 수 있습니까?
오류 메시지에는 5 개의 K, V
쌍 (총 10 개의 인수) 만 포함되어 있습니다 . 이것은 의도적으로 설계된 것입니다. ImmutableMap 클래스는 6 가지 of()
방법을 제공 하며 0 ~ 5 개의 키-값 쌍을 허용합니다. 가 아닌 of(...)
A가 있기 때문에 매개 변수 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();
지도가 짧은 경우 다음을 수행 할 수 있습니다.
ImmutableMap.of(key, value, key2, value2); // ...up to five k-v pairs
더 길다면 :
ImmutableMap.builder()
.put(key, value)
.put(key2, value2)
// ...
.build();
"put"은 더 이상 사용되지 않으며 대신 사용하지 말고 대신 .of를 사용하십시오.
ImmutableMap<String, String> myMap = ImmutableMap.of(
"city1", "Seattle",
"city2", "Delhi"
);
참고 URL : https://stackoverflow.com/questions/9489384/initializing-a-guava-immutablemap
'Programing' 카테고리의 다른 글
HashSet / HashMap에 중복 값을 추가하면 이전 값이 대체됩니다 (0) | 2020.07.03 |
---|---|
Xcode 5 서명에 사용할 수있는 ID가 없습니다. (0) | 2020.07.03 |
child_process.execSync를 사용하지만 콘솔에서 출력을 유지하십시오. (0) | 2020.07.03 |
git에서 첫 번째 커밋을 제거하는 방법은 무엇입니까? (0) | 2020.07.03 |
Objective-C에서 배열 결합 (0) | 2020.07.03 |