add methods

This commit is contained in:
Looly
2022-01-27 09:22:12 +08:00
parent f7ab6b0ccf
commit f267e9e6b5
2 changed files with 23 additions and 3 deletions

View File

@@ -6,8 +6,8 @@ import cn.hutool.core.lang.func.Func0;
/** /**
* Bean属性缓存<br> * Bean属性缓存<br>
* 缓存用于防止多次反射造成的性能问题 * 缓存用于防止多次反射造成的性能问题
* @author Looly
* *
* @author Looly
*/ */
public enum BeanDescCache { public enum BeanDescCache {
INSTANCE; INSTANCE;
@@ -16,12 +16,22 @@ public enum BeanDescCache {
/** /**
* 获得属性名和{@link BeanDesc}Map映射 * 获得属性名和{@link BeanDesc}Map映射
*
* @param beanClass Bean的类 * @param beanClass Bean的类
* @param supplier 对象不存在时创建对象的函数 * @param supplier 对象不存在时创建对象的函数
* @return 属性名和{@link BeanDesc}映射 * @return 属性名和{@link BeanDesc}映射
* @since 5.4.2 * @since 5.4.2
*/ */
public BeanDesc getBeanDesc(Class<?> beanClass, Func0<BeanDesc> supplier){ public BeanDesc getBeanDesc(Class<?> beanClass, Func0<BeanDesc> supplier) {
return bdCache.get(beanClass, supplier); return bdCache.get(beanClass, supplier);
} }
/**
* 清空全局的Bean属性缓存
*
* @since 5.7.21
*/
public void clear() {
this.bdCache.clear();
}
} }

View File

@@ -56,6 +56,16 @@ public enum BeanInfoCache {
getCache(ignoreCase).put(beanClass, fieldNamePropertyDescriptorMap); getCache(ignoreCase).put(beanClass, fieldNamePropertyDescriptorMap);
} }
/**
* 清空缓存
*
* @since 5.7.21
*/
public void clear() {
this.pdCache.clear();
this.ignoreCasePdCache.clear();
}
/** /**
* 根据是否忽略字段名的大小写返回不用Cache对象 * 根据是否忽略字段名的大小写返回不用Cache对象
* *