Допустим, у нас есть метод, который возвращает ConcurentMap с парами для старых и новых значений чисел.
public ConcurrentMap<String, String> getAllOldAndNewPairs() {
return databaseConnector.executeQuery(QUERY, new QueryLauncher<ConcurrentHashMap<String, String>>() {
@Override
public ConcurrentHashMap<String, String> processResult(Results results) throws DAOException {
ConcurrentHashMap<String, String> oldAndNewPairs = new ConcurrentHashMap<>();
while (results.next()) {
oldAndNewPairs.put(results.getString(Column.OLD_NUMBER), results.getString(Column.NEW_NUMBER));
}
return oldAndNewPairs;
}
});
}
Я хочу заполнить кеш гуавы запись из метода getAllOldAndNewPairs()
Пока у меня есть такой метод, как:
public void propagateCache() {
LoadingCache<String, String> loadingCache =
CacheBuilder.newBuilder().build(new CacheLoader<String, String>() {
@Override
public String load(String s) throws Exception {
return getAllOldAndNewPairs();
}
});
}
, но в настоящее время IDE жалуется на строку:
return getAllOldAndNewPairs();
Требуемый тип : String - Прилагается: параллельная карта
Я пробовал либо:
LoadingCache<String, String> cache = CacheBuilder.newBuilder()
.build(CacheLoader.from(this::getAllOldAndNewPairs));
, и либо это не дало желаемого эффекта.
Буду благодарен за предложения, как решить эту проблему проблема и заполните кеш значения из метода getAllOldAndNewPairs.