From e8ae938d4f46aa1120099cfdb60b859154ab569d Mon Sep 17 00:00:00 2001 From: stylefeng Date: Wed, 7 Aug 2024 15:13:50 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=908.3.0=E3=80=91=E3=80=90scanner?= =?UTF-8?q?=E3=80=91=E9=92=88=E5=AF=B9WITH=5FUNKNOWN=5FGENERIC=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../scanner/api/factory/ClassMetaFactory.java | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/factory/ClassMetaFactory.java b/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/factory/ClassMetaFactory.java index 8495912f3..5a7cd000b 100644 --- a/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/factory/ClassMetaFactory.java +++ b/kernel-d-scanner/scanner-api/src/main/java/cn/stylefeng/roses/kernel/scanner/api/factory/ClassMetaFactory.java @@ -99,9 +99,7 @@ public class ClassMetaFactory { Type subFieldType = classParseResult.getGenericType(); // 3. 继续进行这个字段的解析,判断是否需要填充子字段或者数组字段 - SubFieldMetadataDTO typeSubInfo = ClassMetaFactory.getTypeSubInfo(uuid, subFieldType); - subField.setGenericFieldMetadata(typeSubInfo.getGenericFieldMetadata()); - subField.setArrayFieldMetadata(typeSubInfo.getArrayFieldMetadata()); + ClassMetaFactory.getSubFieldTypeAndFillOriginMeta(uuid, subField, subFieldType); } return rawTypeMetadata; } @@ -206,4 +204,18 @@ public class ClassMetaFactory { return fieldInfo; } + /** + * 获取子字段的类型,并填充原有的解析字段的部分内容 + * + * @author fengshuonan + * @since 2024/8/7 15:11 + */ + private static void getSubFieldTypeAndFillOriginMeta(String uuid, FieldMetadata subField, Type subFieldType) { + FieldMetadata realSubFieldMetadata = ClassMetaFactory.beginCreateFieldMetadata(subFieldType, uuid); + subField.setFieldClassType(realSubFieldMetadata.getFieldClassType()); + subField.setFieldClassPath(realSubFieldMetadata.getFieldClassPath()); + subField.setFieldType(realSubFieldMetadata.getFieldType()); + subField.setGenericFieldMetadata(realSubFieldMetadata.getGenericFieldMetadata()); + subField.setArrayFieldMetadata(realSubFieldMetadata.getArrayFieldMetadata()); + } }