docs: @SuppressWarnings("unchecked")
      private static <T> T toCollectionType(Object data, Class<T> collectionType) {
          if (!Collection.class.isAssignableFrom(collectionType)) {
              throw new IllegalArgumentException("only collection type is allowed here, but your's is: " + collectionType);
          }
          Collection result;
          try {
              result = (Collection) collectionType.newInstance();
          } catch (InstantiationException | IllegalAccessException e) {
              /*here the given type can not be initialized, so we make a guess*/
              if (List.class.isAssignableFrom(collectionType)) {
                  result = new ArrayList();
              } else if (Set.class.isAssignableFrom(collectionType)) {
                  result = new HashSet();
              } else if (Queue.class.isAssignableFrom(collectionType)) {
                  result = new LinkedList();
              } else {
                  throw new IllegalArgumentException("Unsupported collection type: " + collectionType);
              }
          }
          if (data == null) {
              return null;
          } else if (data instanceof Collection) {
              result.addAll((Collection) data);
              return (T) result;
          } else if (data.getClass().isArray()) {
              result.addAll(ArrayUtil.toList(data));
              return (T) result;
          } else if (data instanceof String) {
              String value = data.toString();
              try {
                  JSONArray arrayValue = JSON.parseArray(value);
                  result.addAll(arrayValue);
                  return (T) result;
              } catch (JSONException parseFailed) {
                  LOG.debug("解析数组失败，那么解析jsonObject");
                  try {
                      result.add(JSON.parseObject(value));
                      return (T) result;
                  } catch (JSONException parseJSONObjectFailed) {
                      LOG.debug("解析jsonObject失败，那么直接将字符串值添加到结果集合内，这里这样做比较宽容，后期评估是否适合大部分业务场景");
                      result.add(value);
                      return (T) result;
                  }
              }
          } else {
              result.add(data);
              return (T) result;
          }
      }