@Nullable
  public static <DSTTYPE> DSTTYPE convert (@Nonnull final ITypeConverterProvider aTypeConverterProvider,
                                           @Nullable final Object aSrcValue,
                                           @Nonnull final Class <DSTTYPE> aDstClass,
                                           @Nullable final DSTTYPE aDefault)
  {
    try
    {
      return convert (TypeConverterProviderBestMatch.getInstance (), aSrcValue, aDstClass);
    }
    catch (final TypeConverterException ex)
    {
      return aDefault;
    }
  }
@ Nullable public static < DSTTYPE > DSTTYPE convert ( @ Nonnull final ITypeConverterProvider aTypeConverterProvider , @ Nullable final Object aSrcValue , @ Nonnull final Class < DSTTYPE > aDstClass , @ Nullable final DSTTYPE aDefault ) { try { return convert ( TypeConverterProviderBestMatch . getInstance ( ) , aSrcValue , aDstClass ) ; } catch ( final TypeConverterException ex ) { return aDefault ; } }
Convert the passed source value to the destination class, if a conversion
is necessary.

@param <DSTTYPE>
The destination type.
@param aTypeConverterProvider
The type converter provider. May not be <code>null</code>.
@param aSrcValue
The source value. May be <code>null</code>.
@param aDstClass
The destination class to use.
@param aDefault
The default value to be returned, if an
{@link TypeConverterException} occurs.
@return <code>null</code> if the source value was <code>null</code> or the
default value is <code>null</code>.
@throws RuntimeException
If the converter itself throws an exception