From c548ec9b6e50ea915f41893f07c649ebcb286d69 Mon Sep 17 00:00:00 2001 From: Sol Date: Fri, 13 Jun 2025 12:28:01 +0800 Subject: [PATCH] refactor(common-base-web): Optimize BaseEntityClass method - Use ResolvableType to replace reflection mechanism to get generic types --- .../bgasol/common/core/base/service/BaseService.java | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/cloud/common/common-base-web/src/main/java/com/bgasol/common/core/base/service/BaseService.java b/cloud/common/common-base-web/src/main/java/com/bgasol/common/core/base/service/BaseService.java index a661ec6..4544154 100644 --- a/cloud/common/common-base-web/src/main/java/com/bgasol/common/core/base/service/BaseService.java +++ b/cloud/common/common-base-web/src/main/java/com/bgasol/common/core/base/service/BaseService.java @@ -18,11 +18,11 @@ import org.apache.commons.lang3.reflect.FieldUtils; import org.redisson.api.RMapCache; import org.redisson.api.RedissonClient; import org.springframework.beans.factory.annotation.Value; +import org.springframework.core.ResolvableType; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.lang.reflect.Field; -import java.lang.reflect.ParameterizedType; import java.util.*; import java.util.stream.Collectors; @@ -48,14 +48,9 @@ public abstract class BaseService commonBaseEntityClass() { - Class cls = getClass(); - while (!cls.getSuperclass().equals(BaseService.class)) { - cls = cls.getSuperclass(); - } - ParameterizedType type = (ParameterizedType) cls.getGenericSuperclass(); - @SuppressWarnings("unchecked") Class entityClass = (Class) type.getActualTypeArguments()[0]; - return entityClass; + return (Class) ResolvableType.forClass(getClass()).as(BaseService.class).getGeneric(0).resolve(); } /**