code: @SuppressWarnings("unchecked")
      public <T> void putInCache(final Object requestCacheKey, final T data, RequestListener<T> listener) {
          putInCache((Class<T>) data.getClass(), requestCacheKey, data, listener);
      }
docs: Adds some data to the cache, asynchronously. Same as
  {@link #putInCache(Class, Object, Object, RequestListener)} where the
  class used to identify the request is data.getClass().
  @param requestCacheKey
  the request cache key that data will be stored in.
  @param data
  the data to store. Maybe null if supported by underlying
  ObjectPersister.
  @param listener
  a listener that will be notified of this request's success or
  failure. May be null.