mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-05-09 23:51:34 +08:00
添加spi加载自定义转换方法
This commit is contained in:
parent
80239e2f27
commit
1f57bff2c0
@ -32,8 +32,10 @@ import cn.hutool.core.convert.impl.URLConverter;
|
||||
import cn.hutool.core.convert.impl.UUIDConverter;
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import cn.hutool.core.lang.TypeReference;
|
||||
import cn.hutool.core.util.ClassUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.ReflectUtil;
|
||||
import cn.hutool.core.util.ServiceLoaderUtil;
|
||||
import cn.hutool.core.util.TypeUtil;
|
||||
|
||||
import java.io.Serializable;
|
||||
@ -59,9 +61,11 @@ import java.time.temporal.TemporalAccessor;
|
||||
import java.util.Calendar;
|
||||
import java.util.Collection;
|
||||
import java.util.Currency;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.ServiceLoader;
|
||||
import java.util.TimeZone;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
@ -107,6 +111,22 @@ public class ConverterRegistry implements Serializable{
|
||||
|
||||
public ConverterRegistry() {
|
||||
defaultConverter();
|
||||
putCustomBySpi();
|
||||
|
||||
|
||||
}
|
||||
|
||||
@SuppressWarnings("rawtypes")
|
||||
private void putCustomBySpi() {
|
||||
List<Converter> list = ServiceLoaderUtil.loadList(Converter.class);
|
||||
list.forEach(converter->{
|
||||
try {
|
||||
Type type = TypeUtil.getTypeArgument(ClassUtil.getClass(converter));
|
||||
putCustom(type, converter);
|
||||
} catch (Exception e) {
|
||||
// 忽略注册失败的
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
x
Reference in New Issue
Block a user