mirror of https://gitee.com/stylefeng/roses
【8.3.0】【scanner】更新class类型判断
parent
f71651111a
commit
33cf0457c9
|
@ -3,7 +3,6 @@ package cn.stylefeng.roses.kernel.scanner.api.util;
|
||||||
import cn.hutool.core.util.IdUtil;
|
import cn.hutool.core.util.IdUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.stylefeng.roses.kernel.rule.enums.FieldTypeEnum;
|
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.context.MetadataContext;
|
||||||
import cn.stylefeng.roses.kernel.scanner.api.enums.GenericFieldMetadataType;
|
import cn.stylefeng.roses.kernel.scanner.api.enums.GenericFieldMetadataType;
|
||||||
import cn.stylefeng.roses.kernel.scanner.api.enums.ParamTypeEnum;
|
import cn.stylefeng.roses.kernel.scanner.api.enums.ParamTypeEnum;
|
||||||
|
@ -49,7 +48,7 @@ public class ClassDescriptionUtil {
|
||||||
}
|
}
|
||||||
// 如果是集合类型,判断集合的泛型,集合的泛型是对象的话,就是对象类型,否则就是基本类型
|
// 如果是集合类型,判断集合的泛型,集合的泛型是对象的话,就是对象类型,否则就是基本类型
|
||||||
else if (FieldTypeEnum.COLLECTION_WITH_OBJECT.equals(fieldTypeEnum)) {
|
else if (FieldTypeEnum.COLLECTION_WITH_OBJECT.equals(fieldTypeEnum)) {
|
||||||
if (getClassGenObjectFlag(clazz)) {
|
if (ClassDescriptionUtil.getClassGenObjectFlag(clazz)) {
|
||||||
fieldMetadataItem.setGenericFieldMetadataType(GenericFieldMetadataType.OBJECT_TYPE.getCode());
|
fieldMetadataItem.setGenericFieldMetadataType(GenericFieldMetadataType.OBJECT_TYPE.getCode());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -73,7 +72,14 @@ public class ClassDescriptionUtil {
|
||||||
*/
|
*/
|
||||||
public static FieldMetadata createParameterizedMetadata(ParameterizedType parameterizedType, FieldTypeEnum fieldTypeEnum, String uuid) {
|
public static FieldMetadata createParameterizedMetadata(ParameterizedType parameterizedType, FieldTypeEnum fieldTypeEnum, String uuid) {
|
||||||
Class<?> rawType = (Class<?>) parameterizedType.getRawType();
|
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();
|
Type[] actualTypeArguments = parameterizedType.getActualTypeArguments();
|
||||||
if (actualTypeArguments.length > 0) {
|
if (actualTypeArguments.length > 0) {
|
||||||
Type actualTypeArgument = actualTypeArguments[0];
|
Type actualTypeArgument = actualTypeArguments[0];
|
||||||
FieldTypeEnum classFieldType = ClassTypeUtil.getClassFieldType(actualTypeArgument);
|
FieldTypeEnum classFieldType = AdvancedClassTypeUtil.getClassFieldType(actualTypeArgument);
|
||||||
return FieldTypeEnum.OBJECT.equals(classFieldType);
|
return FieldTypeEnum.OBJECT.equals(classFieldType);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue