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

com.xiaoleilu.hutool.bean.BeanInfoCache Maven / Gradle / Ivy

package com.xiaoleilu.hutool.bean;

import java.beans.PropertyDescriptor;
import java.util.Map;

import com.xiaoleilu.hutool.lang.SimpleCache;

/**
 * Bean属性缓存
* 缓存用于防止多次反射造成的性能问题 * @author Looly * */ public enum BeanInfoCache { INSTANCE; private SimpleCache, Map> pdCache = new SimpleCache<>(); private SimpleCache, Map> ignoreCasePdCache = new SimpleCache<>(); /** * 获得属性名和{@link PropertyDescriptor}Map映射 * @param beanClass Bean的类 * @param ignoreCase 是否忽略大小写 * @return 属性名和{@link PropertyDescriptor}Map映射 */ public Map getPropertyDescriptorMap(Class beanClass, boolean ignoreCase){ return (ignoreCase ? ignoreCasePdCache : pdCache).get(beanClass); } /** * 加入缓存 * @param beanClass Bean的类 * @param fieldNamePropertyDescriptorMap 属性名和{@link PropertyDescriptor}Map映射 * @param ignoreCase 是否忽略大小写 */ public void putPropertyDescriptorMap(Class beanClass, Map fieldNamePropertyDescriptorMap, boolean ignoreCase){ (ignoreCase ? ignoreCasePdCache : pdCache).put(beanClass, fieldNamePropertyDescriptorMap); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy