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()); + } }