|
|
@@ -1,9 +1,5 @@
|
|
|
package cn.hutool.core.convert.impl;
|
|
|
|
|
|
-import java.lang.reflect.Type;
|
|
|
-import java.util.Map;
|
|
|
-import java.util.Map.Entry;
|
|
|
-
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
import cn.hutool.core.convert.AbstractConverter;
|
|
|
import cn.hutool.core.convert.ConverterRegistry;
|
|
|
@@ -11,6 +7,10 @@ import cn.hutool.core.map.MapUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import cn.hutool.core.util.TypeUtil;
|
|
|
|
|
|
+import java.lang.reflect.Type;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.Map.Entry;
|
|
|
+
|
|
|
/**
|
|
|
* {@link Map} 转换器
|
|
|
*
|
|
|
@@ -52,7 +52,7 @@ public class MapConverter extends AbstractConverter<Map<?, ?>> {
|
|
|
@Override
|
|
|
@SuppressWarnings({ "rawtypes", "unchecked" })
|
|
|
protected Map<?, ?> convertInternal(Object value) {
|
|
|
- final Map map;
|
|
|
+ Map map;
|
|
|
if (value instanceof Map) {
|
|
|
final Type[] typeArguments = TypeUtil.getTypeArguments(value.getClass());
|
|
|
if (null != typeArguments //
|
|
|
@@ -66,6 +66,8 @@ public class MapConverter extends AbstractConverter<Map<?, ?>> {
|
|
|
convertMapToMap((Map) value, map);
|
|
|
} else if (BeanUtil.isBean(value.getClass())) {
|
|
|
map = BeanUtil.beanToMap(value);
|
|
|
+ // 二次转换,转换键值类型
|
|
|
+ map = convertInternal(map);
|
|
|
} else {
|
|
|
throw new UnsupportedOperationException(StrUtil.format("Unsupport toMap value type: {}", value.getClass().getName()));
|
|
|
}
|