mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-07-21 15:09:48 +08:00
add test
This commit is contained in:
@@ -29,24 +29,37 @@ public enum BeanCopierCache {
|
||||
* @return Map中对应的BeanCopier
|
||||
*/
|
||||
public BeanCopier get(Class<?> srcClass, Class<?> targetClass, Converter converter) {
|
||||
final String key = genKey(srcClass, targetClass, converter);
|
||||
return cache.get(key, () -> BeanCopier.create(srcClass, targetClass, converter != null));
|
||||
return get(srcClass, targetClass, null != converter);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获得类与转换器生成的key
|
||||
* 获得类与转换器生成的key在{@link BeanCopier}的Map中对应的元素
|
||||
*
|
||||
* @param srcClass 源Bean的类
|
||||
* @param targetClass 目标Bean的类
|
||||
* @param converter 转换器
|
||||
* @param srcClass 源Bean的类
|
||||
* @param targetClass 目标Bean的类
|
||||
* @param useConverter 是否使用转换器
|
||||
* @return Map中对应的BeanCopier
|
||||
* @since 5.8.0
|
||||
*/
|
||||
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));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获得类与转换器生成的key<br>
|
||||
* 结构类似于:srcClassName#targetClassName#1 或者 srcClassName#targetClassName#0
|
||||
*
|
||||
* @param srcClass 源Bean的类
|
||||
* @param targetClass 目标Bean的类
|
||||
* @param useConverter 是否使用转换器
|
||||
* @return 属性名和Map映射的key
|
||||
*/
|
||||
private String genKey(Class<?> srcClass, Class<?> targetClass, Converter converter) {
|
||||
private String genKey(Class<?> srcClass, Class<?> targetClass, boolean useConverter) {
|
||||
final StringBuilder key = StrUtil.builder()
|
||||
.append(srcClass.getName()).append('#').append(targetClass.getName());
|
||||
if(null != converter){
|
||||
key.append('#').append(converter.getClass().getName());
|
||||
}
|
||||
.append(srcClass.getName())
|
||||
.append('#').append(targetClass.getName())
|
||||
.append('#').append(useConverter ? 1 : 0);
|
||||
return key.toString();
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user