docs: public static <T> String join(T[] array, CharSequence conjunction, String prefix, String suffix) {
  		if (null == array) {
  			return null;
  		}
  
  		final StringBuilder sb = new StringBuilder();
  		boolean isFirst = true;
  		for (T item : array) {
  			if (isFirst) {
  				isFirst = false;
  			} else {
  				sb.append(conjunction);
  			}
  			if (ArrayUtil.isArray(item)) {
  				sb.append(join(ArrayUtil.wrap(item), conjunction, prefix, suffix));
  			} else if (item instanceof Iterable<?>) {
  				sb.append(IterUtil.join((Iterable<?>) item, conjunction, prefix, suffix));
  			} else if (item instanceof Iterator<?>) {
  				sb.append(IterUtil.join((Iterator<?>) item, conjunction, prefix, suffix));
  			} else {
  				sb.append(StrUtil.wrap(StrUtil.toString(item), prefix, suffix));
  			}
  		}
  		return sb.toString();
  	}