code: public <S, T> Converter<S, T> findConverter(ConverterKey<S,T> key) {
  		
  		 // We check once before attempting introspection so we avoid that if possible
  		@SuppressWarnings("unchecked")
  		Converter<S,T> converter = (Converter<S, T>) registeredConverters.get(key);
  		if (converter != null) {
  			return converter;
  		}
  		
  		// Now try introspecting the relevant class
  		registerAnnotatedClasses(key.getInputClass(), key.getOutputClass());
  
  		@SuppressWarnings("unchecked")
  		Converter<S,T> myConverter = (Converter<S, T>) registeredConverters.get(key);
  		return myConverter;
  	}
docs: Resolve a Converter with the given input and output classes. Instances of the input class can be converted into
  instances of the output class
  @param key The key to look up