public static <U, V> Converter<V, U> wrapWithCast(
      Converter<Object, U> converter, Class<V> type) {
    Converter<V, Object> castConverter = new CastingConverter<V>(type).inverse();
    return castConverter.compose(converter);
  }
public static < U , V > Converter < V , U > wrapWithCast ( Converter < Object , U > converter , Class < V > type ) { Converter < V , Object > castConverter = new CastingConverter < V > ( type ) . inverse ( ) ; return castConverter . compose ( converter ) ; }
Wraps {@code converter} such that its inputVar is of type {@code V}. The
result of invert on the returned converter is also cast to {@code V} before
being returned.

@param converter
@param classToCast
@return