code: public <S, T> T convertTo(Class<T> output, Object object, Class<? extends Annotation> qualifier) {
  
  		if (object == null) {
  			return null;
  		}
  		
  		@SuppressWarnings("unchecked")
  		Converter<S, T> conv = (Converter<S, T>) determineConverter(object.getClass(), output, qualifier == null ? DefaultBinding.class : qualifier);
  		
  		if (conv == null) {
  			@SuppressWarnings("unchecked")
  			Class<S> inputClass = (Class<S>)object.getClass();
  			throw new NoConverterFoundException(new ConverterKey<S,T>(inputClass, output, qualifier == null ? DefaultBinding.class : qualifier));
  		}
  		
  		@SuppressWarnings("unchecked")
  		S myObject = (S)object;
  		return conv.convert(myObject);
  	}
docs: Convert an object to the given target class
  This method infers the source type for the conversion from the runtime type of object.
  @param output The target class to convert the object to
  @param object The object to be converted
  @param qualifier The qualifier for which the binding must be registered