diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/bean/BeanDescFactory.java b/hutool-core/src/main/java/org/dromara/hutool/core/bean/BeanDescFactory.java
index 01d7dfd27..f3595a364 100644
--- a/hutool-core/src/main/java/org/dromara/hutool/core/bean/BeanDescFactory.java
+++ b/hutool-core/src/main/java/org/dromara/hutool/core/bean/BeanDescFactory.java
@@ -14,8 +14,6 @@ package org.dromara.hutool.core.bean;
import org.dromara.hutool.core.map.reference.WeakConcurrentMap;
-import java.util.function.Supplier;
-
/**
* Bean描述信息工厂类
* 通过不同的类和策略,生成对应的{@link BeanDesc},策略包括:
@@ -38,7 +36,7 @@ public class BeanDescFactory {
* @return {@link BeanDesc}
*/
public static BeanDesc getBeanDesc(final Class> clazz) {
- return getBeanDesc(clazz, () -> getBeanDescWithoutCache(clazz));
+ return bdCache.computeIfAbsent(clazz, (key) -> getBeanDescWithoutCache(clazz));
}
/**
@@ -63,18 +61,4 @@ public class BeanDescFactory {
public static void clearCache() {
bdCache.clear();
}
-
- /**
- * 获得属性名和{@link BeanDesc}Map映射
- *
- * @param beanClass Bean的类
- * @param supplier 对象不存在时创建对象的函数
- * @param BeanDesc子类
- * @return 属性名和 {@link BeanDesc}映射
- * @since 5.4.2
- */
- @SuppressWarnings("unchecked")
- private static T getBeanDesc(final Class> beanClass, final Supplier supplier) {
- return (T) bdCache.computeIfAbsent(beanClass, (key) -> supplier.get());
- }
}
diff --git a/hutool-core/src/test/java/org/dromara/hutool/core/bean/BeanDescFactoryTest.java b/hutool-core/src/test/java/org/dromara/hutool/core/bean/BeanDescFactoryTest.java
new file mode 100644
index 000000000..26ebd0a95
--- /dev/null
+++ b/hutool-core/src/test/java/org/dromara/hutool/core/bean/BeanDescFactoryTest.java
@@ -0,0 +1,30 @@
+package org.dromara.hutool.core.bean;
+
+import lombok.Data;
+import org.junit.jupiter.api.Test;
+
+import java.util.Collection;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+public class BeanDescFactoryTest {
+ @Test
+ void getBeanDescTest() {
+ final BeanDesc beanDesc = BeanDescFactory.getBeanDesc(Food.class);
+ final Collection props = beanDesc.getProps();
+ assertEquals(2, props.size());
+ }
+
+ @Test
+ void getBeanDescWithoutCacheTest() {
+ final BeanDesc beanDesc = BeanDescFactory.getBeanDescWithoutCache(Food.class);
+ final Collection props = beanDesc.getProps();
+ assertEquals(2, props.size());
+ }
+
+ @Data
+ public static class Food {
+ private String bookID;
+ private String code;
+ }
+}