cn.hutool.core.bean.BeanInfoCache Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of hutool-all Show documentation
Show all versions of hutool-all Show documentation
Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。
package cn.hutool.core.bean;
import cn.hutool.core.lang.func.Func0;
import cn.hutool.core.map.ReferenceConcurrentMap;
import cn.hutool.core.map.WeakConcurrentMap;
import java.beans.PropertyDescriptor;
import java.util.Map;
/**
* Bean属性缓存
* 缓存用于防止多次反射造成的性能问题
*
* @author Looly
*/
public enum BeanInfoCache {
INSTANCE;
private final WeakConcurrentMap, Map> pdCache = new WeakConcurrentMap<>();
private final WeakConcurrentMap, Map> ignoreCasePdCache = new WeakConcurrentMap<>();
/**
* 获得属性名和{@link PropertyDescriptor}Map映射
*
* @param beanClass Bean的类
* @param ignoreCase 是否忽略大小写
* @return 属性名和{@link PropertyDescriptor}Map映射
*/
public Map getPropertyDescriptorMap(Class> beanClass, boolean ignoreCase) {
return getCache(ignoreCase).get(beanClass);
}
/**
* 获得属性名和{@link PropertyDescriptor}Map映射
*
* @param beanClass Bean的类
* @param ignoreCase 是否忽略大小写
* @param supplier 缓存对象产生函数
* @return 属性名和{@link PropertyDescriptor}Map映射
* @since 5.4.1
*/
public Map getPropertyDescriptorMap(
Class> beanClass,
boolean ignoreCase,
Func0
© 2015 - 2024 Weber Informatics LLC | Privacy Policy