mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-05-09 23:51:34 +08:00
remove class
This commit is contained in:
parent
3e20e48f54
commit
3d70db0041
@ -1,55 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2023 looly(loolly@aliyun.com)
|
||||
* Hutool is licensed under Mulan PSL v2.
|
||||
* You can use this software according to the terms and conditions of the Mulan PSL v2.
|
||||
* You may obtain a copy of Mulan PSL v2 at:
|
||||
* https://license.coscl.org.cn/MulanPSL2
|
||||
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||
* See the Mulan PSL v2 for more details.
|
||||
*/
|
||||
|
||||
package org.dromara.hutool.core.bean;
|
||||
|
||||
import org.dromara.hutool.core.map.reference.WeakConcurrentMap;
|
||||
|
||||
import java.util.function.Supplier;
|
||||
|
||||
/**
|
||||
* Bean属性缓存<br>
|
||||
* 缓存用于防止多次反射造成的性能问题
|
||||
*
|
||||
* @author Looly
|
||||
*/
|
||||
public enum BeanDescCache {
|
||||
/**
|
||||
* 单例
|
||||
*/
|
||||
INSTANCE;
|
||||
|
||||
private final WeakConcurrentMap<Class<?>, BeanDesc> bdCache = new WeakConcurrentMap<>();
|
||||
|
||||
/**
|
||||
* 获得属性名和{@link BeanDesc}Map映射
|
||||
*
|
||||
* @param beanClass Bean的类
|
||||
* @param supplier 对象不存在时创建对象的函数
|
||||
* @param <T> BeanDesc子类
|
||||
* @return 属性名和 {@link BeanDesc}映射
|
||||
* @since 5.4.2
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public <T extends BeanDesc> T getBeanDesc(final Class<?> beanClass, final Supplier<T> supplier) {
|
||||
return (T) bdCache.computeIfAbsent(beanClass, (key) -> supplier.get());
|
||||
}
|
||||
|
||||
/**
|
||||
* 清空全局的Bean属性缓存
|
||||
*
|
||||
* @since 5.7.21
|
||||
*/
|
||||
public void clear() {
|
||||
this.bdCache.clear();
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user