From 33cf0457c921760ab04bc7be3ad6917d4f7eff40 Mon Sep 17 00:00:00 2001 From: stylefeng Date: Mon, 5 Aug 2024 17:26:08 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=908.3.0=E3=80=91=E3=80=90scanner?= =?UTF-8?q?=E3=80=91=E6=9B=B4=E6=96=B0class=E7=B1=BB=E5=9E=8B=E5=88=A4?= =?UTF-8?q?=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../scanner/api/util/ClassDescriptionUtil.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) 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); } }