code: public String getTypeGenericExtends(int typeParamIndex, String[] typeParamNames) {
          String genericClause = typeGenericExtends[typeParamIndex];
          genericClause = genericClause.replace("<" + typeGenericName[typeParamIndex] + ">", "<" + typeParamNames[typeParamIndex] + ">");
          for (int i = 0; i < typeGenericName.length; i++) {
              genericClause = genericClause.replace("<" + typeGenericName[i] + ">", "<" + typeParamNames[i] + ">");
              genericClause = genericClause.replace(" extends " + typeGenericName[i] + ">", " extends " + typeParamNames[i] + ">");
              genericClause = genericClause.replace(" super " + typeGenericName[i] + ">", " super " + typeParamNames[i] + ">");
          }
          return genericClause;
      }
docs: Gets the extends clause of the parameterisation of the bean, such as '{@code  extends Foo}'.
  @param typeParamIndex  the zero-based index of the type parameter
  @param typeParamNames  the type parameter names
  @return the generic type extends clause, or a blank string if not generic or no extends, not null