From 03ededfa0a501fbd0c50a808009a996492edde47 Mon Sep 17 00:00:00 2001 From: shalousun <836575280@qq.com> Date: Sat, 11 Jul 2026 00:07:58 +0800 Subject: [PATCH] feat: fix #11 --- .../github/smartdoc/helper/ParamsBuildHelper.java | 14 ++++++++++---- .../smartdoc/template/IJavadocDocTemplate.java | 11 +++++++++++ 2 files changed, 21 insertions(+), 4 deletions(-) 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;