diff --git a/src/main/java/io/github/smartdoc/helper/ParamsBuildHelper.java b/src/main/java/io/github/smartdoc/helper/ParamsBuildHelper.java index 4dfd2b0f..a513c04b 100644 --- a/src/main/java/io/github/smartdoc/helper/ParamsBuildHelper.java +++ b/src/main/java/io/github/smartdoc/helper/ParamsBuildHelper.java @@ -741,10 +741,16 @@ public static List buildMapParam(String[] globGicName, String pre, int paramList.add(apiParam); // in foreach, need remove enum class in registry registryClasses.remove(valueSimpleName); - List apiParams = addValueParams(valueSimpleName, globGicName, level, isRequired, isResp, - registryClasses, projectBuilder, groupClasses, jsonViewClasses, apiParam.getId(), jsonRequest, - nextLevel, atomicInteger); - paramList.addAll(apiParams); + // Handle generic object types + if (JavaTypeConstants.JAVA_OBJECT_FULLY.equals(valueSimpleName)) { + paramList.addAll(buildGenericObjectParam(valueSimpleName, pre, isRequired, atomicInteger, pid)); + } + else { + List apiParams = addValueParams(valueSimpleName, globGicName, level, isRequired, isResp, + registryClasses, projectBuilder, groupClasses, jsonViewClasses, apiParam.getId(), + jsonRequest, nextLevel, atomicInteger); + paramList.addAll(apiParams); + } } return paramList; } diff --git a/src/main/java/io/github/smartdoc/template/IJavadocDocTemplate.java b/src/main/java/io/github/smartdoc/template/IJavadocDocTemplate.java index b17a825c..6ef1a8d4 100644 --- a/src/main/java/io/github/smartdoc/template/IJavadocDocTemplate.java +++ b/src/main/java/io/github/smartdoc/template/IJavadocDocTemplate.java @@ -193,10 +193,21 @@ default List processClassHierarchy(JavaClass cls, Function */ default List getParentsClassAndInterfaceMethods(ApiConfig apiConfig, JavaClass cls) { return this.processClassHierarchy(cls, currentClass -> { + // Skip the starting class — its methods are already handled in + // buildServiceMethod + if (currentClass.equals(cls)) { + return new ArrayList<>(); + } List docJavaMethods = new ArrayList<>(); Map actualTypesMap = JavaClassUtil.getActualTypesMap(currentClass); List methodList = currentClass.getMethods(); for (JavaMethod method : methodList) { + if (method.isPrivate()) { + continue; + } + if (Objects.nonNull(method.getTagByName(IGNORE))) { + continue; + } docJavaMethods.add(this.convertToJavadocJavaMethod(apiConfig, method, actualTypesMap)); } return docJavaMethods;