From 3e20e48f54ac7bd132e1a843cd06aa1ffbdfe252 Mon Sep 17 00:00:00 2001 From: Looly Date: Fri, 12 Jul 2024 16:57:52 +0800 Subject: [PATCH] add test --- .../hutool/core/bean/BeanDescFactory.java | 18 +---------- .../hutool/core/bean/BeanDescFactoryTest.java | 30 +++++++++++++++++++ 2 files changed, 31 insertions(+), 17 deletions(-) create mode 100644 hutool-core/src/test/java/org/dromara/hutool/core/bean/BeanDescFactoryTest.java 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; + } +}