code: @SuppressWarnings("rawtypes")
      public static String join(final Collection<?> col, final String separator,
              final boolean ignoreEmptyElement, final boolean trim, final ElementConverter elementConverter) {
  
          final List<Object> list = new ArrayList<Object>();
          for(Object element : col) {
              if(element == null) {
                  continue;
              }
  
              Object value = element;
  
              if(element instanceof String) {
                  String str = (String) element;
                  if(ignoreEmptyElement && isEmpty(str)) {
                      continue;
  
                  } else if(trim) {
                      value = str.trim();
                  }
  
              } else if(element instanceof Character && isEmpty(element.toString())) {
                  String str = element.toString();
                  if(ignoreEmptyElement && isEmpty(str)) {
                      continue;
  
                  } else if(trim) {
                      value = str.trim().charAt(0);
                  }
  
              } else if(char.class.isAssignableFrom(element.getClass())) {
                  String str = element.toString();
                  if(ignoreEmptyElement && isEmpty(str)) {
                      continue;
  
                  } else if(trim) {
                      value = str.trim().charAt(0);
                  }
              }
  
              list.add(value);
  
          }
  
          return join(list, separator, elementConverter);
  
      }
docs: コレクションの要素を指定した区切り文字で繋げて1つの文字列とする。
  @param col 処理対象のコレクション。
  @param separator 区切り文字。
  @param ignoreEmptyElement 空、nullの要素を無視するかどうか。
  @param trim トリムをするかどうか。
  @param elementConverter 要素を変換するクラス。
  @return 結合した文字列