2014-03-26 22 views
2

我正在使用Guava LoadingCache將所有元素一次批量加載到我渴望的緩存中。但是我提供的loadAll方法的實現並不需要Iterable<? extends K>鍵參數,因爲我的DAO不包括任何參數 - 我的DAO方法返回generic Map<K,V>Guava LoadingCache getAll - 但沒有任何參數?

因爲我的實現是泛型的,所以我使用泛型來調用getAllIterable(<? extends K> keys_),但由於類型擦除,我無法實例化K key,並將它傳遞給getAll,因爲它不期望任何非null鍵。

有沒有人知道任何解決這個問題的方法?

+0

仍試圖瞭解你在做什麼。你有沒有提供一個方法來提供你的緩存中應該有的所有內容的Map,而不需要查詢任何特定的鍵?或者你是否試圖從緩存中獲取所有值而不查詢特定的密鑰? –

+0

這裏存在利益衝突;你說你想加載緩存中的所有條目;什麼是「全部」?你讓它聽起來像這樣「全部」是無限的 – fge

+0

@LouisWasserman這是正確的。我批量加載地圖沒有任何特定的鍵 – GMoney

回答

3

如果目標僅僅是預填充有Map<K, V>的內容Cache,那麼你應該只使用Cache.putAll(Map<K, V>)把從指定Map所有條目在緩存中。

+0

我會接受你答案路易斯 - 我只是想捅死StackOverflow,如果有任何替代方案在我的場景中使用putAll - 因爲我已經提供了我的負載方法的實現,我希望有一種方法來利用loadAll作爲好。謝謝。 – GMoney

相關問題