docs: @SuppressWarnings("unchecked")
  	private <T> T convertSpecial(Type type, Class<T> rowType, Object value, T defaultValue) {
  		if (null == rowType) {
  			return null;
  		}
  
  		// 集合转换（不可以默认强转）
  		if (Collection.class.isAssignableFrom(rowType)) {
  			final CollectionConverter collectionConverter = new CollectionConverter(type);
  			return (T) collectionConverter.convert(value, (Collection<?>) defaultValue);
  		}
  
  		// Map类型（不可以默认强转）
  		if (Map.class.isAssignableFrom(rowType)) {
  			final MapConverter mapConverter = new MapConverter(type);
  			return (T) mapConverter.convert(value, (Map<?, ?>) defaultValue);
  		}
  
  		// 默认强转
  		if (rowType.isInstance(value)) {
  			return (T) value;
  		}
  
  		// 数组转换
  		if (rowType.isArray()) {
  			final ArrayConverter arrayConverter = new ArrayConverter(rowType);
  			try {
  				return (T) arrayConverter.convert(value, defaultValue);
  			} catch (Exception e) {
  				// 数组转换失败进行下一步
  			}
  		}
  
  		// 枚举转换
  		if (rowType.isEnum()) {
  			return (T) new EnumConverter(rowType).convert(value, defaultValue);
  		}
  
  		// 表示非需要特殊转换的对象
  		return null;
  	}