code: private void genFormalTypeParameter(TypeParameterElement typeParam, StringBuilder sb) {
      sb.append(ElementUtil.getName(typeParam));
      List<? extends TypeMirror> bounds = typeParam.getBounds();
      if (bounds.isEmpty()) {
        sb.append(':').append(JAVA_OBJECT_SIGNATURE);
      } else {
        if (TypeUtil.isInterface(bounds.get(0))) {
          sb.append(':');
        }
        for (TypeMirror bound : bounds) {
          sb.append(':');
          genTypeSignature(bound, sb);
        }
      }
    }
docs: FormalTypeParameter ::= Ident ClassBound {InterfaceBound}.