All Downloads are FREE. Search and download functionalities are using the official Maven repository.

cn.hutool.core.bean.BeanDescCache Maven / Gradle / Ivy

There is a newer version: 5.8.33
Show newest version
package cn.hutool.core.bean;

import cn.hutool.core.lang.func.Func0;
import cn.hutool.core.map.WeakConcurrentMap;

/**
 * Bean属性缓存
* 缓存用于防止多次反射造成的性能问题 * * @author Looly */ public enum BeanDescCache { INSTANCE; private final WeakConcurrentMap, BeanDesc> bdCache = new WeakConcurrentMap<>(); /** * 获得属性名和{@link BeanDesc}Map映射 * * @param beanClass Bean的类 * @param supplier 对象不存在时创建对象的函数 * @return 属性名和{@link BeanDesc}映射 * @since 5.4.2 */ public BeanDesc getBeanDesc(Class beanClass, Func0 supplier) { return bdCache.computeIfAbsent(beanClass, (key)->supplier.callWithRuntimeException()); } /** * 清空全局的Bean属性缓存 * * @since 5.7.21 */ public void clear() { this.bdCache.clear(); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy