docs: private ConverterRegistry defaultConverter() {
  		defaultConverterMap = new ConcurrentHashMap<>();
  
  		// 原始类型转换器
  		defaultConverterMap.put(int.class, new PrimitiveConverter(int.class));
  		defaultConverterMap.put(long.class, new PrimitiveConverter(long.class));
  		defaultConverterMap.put(byte.class, new PrimitiveConverter(byte.class));
  		defaultConverterMap.put(short.class, new PrimitiveConverter(short.class));
  		defaultConverterMap.put(float.class, new PrimitiveConverter(float.class));
  		defaultConverterMap.put(double.class, new PrimitiveConverter(double.class));
  		defaultConverterMap.put(char.class, new PrimitiveConverter(char.class));
  		defaultConverterMap.put(boolean.class, new PrimitiveConverter(boolean.class));
  
  		// 包装类转换器
  		defaultConverterMap.put(Number.class, new NumberConverter());
  		defaultConverterMap.put(Integer.class, new NumberConverter(Integer.class));
  		defaultConverterMap.put(AtomicInteger.class, new NumberConverter(AtomicInteger.class));// since 3.0.8
  		defaultConverterMap.put(Long.class, new NumberConverter(Long.class));
  		defaultConverterMap.put(AtomicLong.class, new NumberConverter(AtomicLong.class));// since 3.0.8
  		defaultConverterMap.put(Byte.class, new NumberConverter(Byte.class));
  		defaultConverterMap.put(Short.class, new NumberConverter(Short.class));
  		defaultConverterMap.put(Float.class, new NumberConverter(Float.class));
  		defaultConverterMap.put(Double.class, new NumberConverter(Double.class));
  		defaultConverterMap.put(Character.class, new CharacterConverter());
  		defaultConverterMap.put(Boolean.class, new BooleanConverter());
  		defaultConverterMap.put(AtomicBoolean.class, new AtomicBooleanConverter());// since 3.0.8
  		defaultConverterMap.put(BigDecimal.class, new NumberConverter(BigDecimal.class));
  		defaultConverterMap.put(BigInteger.class, new NumberConverter(BigInteger.class));
  		defaultConverterMap.put(CharSequence.class, new StringConverter());
  		defaultConverterMap.put(String.class, new StringConverter());
  
  		// URI and URL
  		defaultConverterMap.put(URI.class, new URIConverter());
  		defaultConverterMap.put(URL.class, new URLConverter());
  
  		// 日期时间
  		defaultConverterMap.put(Calendar.class, new CalendarConverter());
  		defaultConverterMap.put(java.util.Date.class, new DateConverter(java.util.Date.class));
  		defaultConverterMap.put(DateTime.class, new DateConverter(DateTime.class));
  		defaultConverterMap.put(java.sql.Date.class, new DateConverter(java.sql.Date.class));
  		defaultConverterMap.put(java.sql.Time.class, new DateConverter(java.sql.Time.class));
  		defaultConverterMap.put(java.sql.Timestamp.class, new DateConverter(java.sql.Timestamp.class));
  
  		// Reference
  		defaultConverterMap.put(WeakReference.class, new ReferenceConverter(WeakReference.class));// since 3.0.8
  		defaultConverterMap.put(SoftReference.class, new ReferenceConverter(SoftReference.class));// since 3.0.8
  		defaultConverterMap.put(AtomicReference.class, new AtomicReferenceConverter());// since 3.0.8
  
  		// 其它类型
  		defaultConverterMap.put(Class.class, new ClassConverter());
  		defaultConverterMap.put(TimeZone.class, new TimeZoneConverter());
  		defaultConverterMap.put(Locale.class, new LocaleConverter());
  		defaultConverterMap.put(Charset.class, new CharsetConverter());
  		defaultConverterMap.put(Path.class, new PathConverter());
  		defaultConverterMap.put(Currency.class, new CurrencyConverter());// since 3.0.8
  		defaultConverterMap.put(UUID.class, new UUIDConverter());// since 4.0.10
  		defaultConverterMap.put(StackTraceElement.class, new StackTraceElementConverter());// since 4.5.2
  
  		// JDK8+
  		try {
  			Class<?> clazz;
  			for (String className : Jdk8DateConverter.supportClassNames) {
  				clazz = ClassUtil.loadClass(className);
  				defaultConverterMap.put(clazz, new Jdk8DateConverter(clazz));// since 4.5.1
  			}
  		} catch (Exception e) {
  			// ignore
  			// 在使用jdk8以下版本时，其转换器自动跳过失效
  		}
  
  		return this;
  	}