class StringConverter implements ConditionalConverter<Object, String> {
  public String convert(MappingContext<Object, String> context) {<FILL_FUNCTION_BODY>}

  public MatchResult match(Class<?> sourceType, Class<?> destinationType) {
    return destinationType == String.class ? sourceType == String.class ? MatchResult.FULL
        : MatchResult.PARTIAL : MatchResult.NONE;
  }
}

    Object source = context.getSource();
    if (source == null)
      return null;

    Class<?> sourceType = context.getSourceType();
    return sourceType.isArray() && sourceType.getComponentType() == Character.TYPE
        || sourceType.getComponentType() == Character.class ? String.valueOf((char[]) source)
        : source.toString();
  
<no_super_class>