2014-03-26 3 views
2

Guava LoadingCache를 사용하여 모든 요소를 ​​즉시 열심히 캐시에로드합니다. 그러나 구현하고있는 loadAll 메서드의 구현은 Iterable<? extends K> 키 인수를 필요로하지 않습니다. 왜냐하면 내 DAO는 매개 변수를 제외하고는 아무 것도 아니기 때문에 - 내 DAO 메서드는 generic Map<K,V>을 반환합니다.Guava LoadingCache getAll -하지만 인수가 없습니까?

제 구현이 일반이기 때문에 getAllIterable(<? extends K> keys_)에 대한 호출을하기 위해 제네릭을 사용하고 있습니다. 유형 삭제 때문에 K 키를 인스턴스화 할 수 없으며 getAll에 전달합니다. null이 아닌 것으로 기대하지 않기 때문입니다. 열쇠.

누구든지이 문제를 해결할 수있는 방법을 알고 있습니까? 목표는 Map<K, V>의 내용과 Cache을 미리 채울 단지의 경우

+0

아직도하고있는 일을 이해하려고합니다. 특정 키를 질의하지 않고 캐시에 넣어야 할 모든 것의'Map '을 제공하는 메소드가 있습니까? 아니면 특정 키를 쿼리하지 않고 캐시에서 모든 값을 가져 오려고합니까? –

+0

여기에는 이해 상충이 있습니다. 당신은 당신이 캐시에서 모든 항목을로드하고 싶다고 말했다. "모두"란 무엇입니까? 당신은 소리가 이렇게 "모든"무한합니다 – fge

+0

@ 루이스 와스 만 맞습니다. 지도를 일괄로드 특정 키없이 – GMoney

답변

3

, 당신은 캐시에 지정된 Map에서 모든 항목을 넣어 Cache.putAll(Map<K, V>)를 사용해야합니다.

+0

루이스에게 답을 수락 할 것입니다 - 내 시나리오에서 putAll을 사용하는 것에 대한 대안이 있다면 StackOverflow를 찌르고 싶습니다. 이미로드 메소드 구현을 제공하고 있기 때문에 loadAll을 활용할 수있는 방법이 있었으면합니다. 잘. 감사. – GMoney

관련 문제