diff --git a/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/util/ClassDescriptionUtil.java b/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/util/ClassDescriptionUtil.java index a63595397..66d22deb9 100644 --- a/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/util/ClassDescriptionUtil.java +++ b/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/util/ClassDescriptionUtil.java @@ -3,7 +3,6 @@ package cn.stylefeng.roses.kernel.scanner.api.util; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; import cn.stylefeng.roses.kernel.rule.enums.FieldTypeEnum; -import cn.stylefeng.roses.kernel.rule.util.ClassTypeUtil; import cn.stylefeng.roses.kernel.scanner.api.context.MetadataContext; import cn.stylefeng.roses.kernel.scanner.api.enums.GenericFieldMetadataType; import cn.stylefeng.roses.kernel.scanner.api.enums.ParamTypeEnum; @@ -49,7 +48,7 @@ public class ClassDescriptionUtil { } // 如果是集合类型,判断集合的泛型,集合的泛型是对象的话,就是对象类型,否则就是基本类型 else if (FieldTypeEnum.COLLECTION_WITH_OBJECT.equals(fieldTypeEnum)) { - if (getClassGenObjectFlag(clazz)) { + if (ClassDescriptionUtil.getClassGenObjectFlag(clazz)) { fieldMetadataItem.setGenericFieldMetadataType(GenericFieldMetadataType.OBJECT_TYPE.getCode()); } } @@ -73,7 +72,14 @@ public class ClassDescriptionUtil { */ public static FieldMetadata createParameterizedMetadata(ParameterizedType parameterizedType, FieldTypeEnum fieldTypeEnum, String uuid) { Class rawType = (Class) parameterizedType.getRawType(); - return createClassMetadata(rawType, fieldTypeEnum, uuid); + FieldMetadata classMetadata = createClassMetadata(rawType, fieldTypeEnum, uuid); + + // 设置泛型的类型 + boolean classGenObjectFlag = ClassDescriptionUtil.getClassGenObjectFlag(parameterizedType); + if (classGenObjectFlag) { + classMetadata.setGenericFieldMetadataType(GenericFieldMetadataType.OBJECT_TYPE.getCode()); + } + return classMetadata; } /** @@ -98,7 +104,7 @@ public class ClassDescriptionUtil { Type[] actualTypeArguments = parameterizedType.getActualTypeArguments(); if (actualTypeArguments.length > 0) { Type actualTypeArgument = actualTypeArguments[0]; - FieldTypeEnum classFieldType = ClassTypeUtil.getClassFieldType(actualTypeArgument); + FieldTypeEnum classFieldType = AdvancedClassTypeUtil.getClassFieldType(actualTypeArgument); return FieldTypeEnum.OBJECT.equals(classFieldType); } }