This commit is contained in:
Looly
2022-04-17 16:19:16 +08:00
parent 7e36d0f076
commit 992477f521
26 changed files with 787 additions and 162 deletions

View File

@@ -1,6 +1,6 @@
package cn.hutool.extra.cglib;
import cn.hutool.core.lang.SimpleCache;
import cn.hutool.core.map.WeakConcurrentMap;
import cn.hutool.core.util.StrUtil;
import net.sf.cglib.beans.BeanCopier;
import net.sf.cglib.core.Converter;
@@ -18,7 +18,7 @@ public enum BeanCopierCache {
*/
INSTANCE;
private final SimpleCache<String, BeanCopier> cache = new SimpleCache<>();
private final WeakConcurrentMap<String, BeanCopier> cache = new WeakConcurrentMap<>();
/**
* 获得类与转换器生成的key在{@link BeanCopier}的Map中对应的元素
@@ -43,7 +43,7 @@ public enum BeanCopierCache {
*/
public BeanCopier get(Class<?> srcClass, Class<?> targetClass, boolean useConverter) {
final String key = genKey(srcClass, targetClass, useConverter);
return cache.get(key, () -> BeanCopier.create(srcClass, targetClass, useConverter));
return cache.computeIfAbsent(key, () -> BeanCopier.create(srcClass, targetClass, useConverter));
}
/**