code: @SuppressWarnings("unchecked")
    @Override
    public <T> T get(final Object key, final Callable<T> valueLoader) {
      try {
        return (T) cache.computeIfAbsent(key, (Callable<Object>) valueLoader);
      } catch (RuntimeException ex) {
        throw new ValueRetrievalException(key, valueLoader, ex);
      }
    }
docs: This method is called instead of {@link #get} and {@link #put} in case {@code sync=true} is
  specified on the {@code Cachable} annotation.