mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-05-09 23:51:34 +08:00
fix mao
This commit is contained in:
parent
596a4f1e57
commit
31e8ef6306
@ -20,6 +20,8 @@
|
|||||||
* 【core】 修复StrBuilder.del无法删除最后一个字符的问题(issue#I12R14@Gitee)
|
* 【core】 修复StrBuilder.del无法删除最后一个字符的问题(issue#I12R14@Gitee)
|
||||||
* 【core】 修复StrBuilder.del无法删除最后一个字符的问题(issue#I12R14@Gitee)
|
* 【core】 修复StrBuilder.del无法删除最后一个字符的问题(issue#I12R14@Gitee)
|
||||||
* 【poi】 修复sax方式读取复用行导致的问题(issue#I12O0U@Gitee)
|
* 【poi】 修复sax方式读取复用行导致的问题(issue#I12O0U@Gitee)
|
||||||
|
* 【core】 修复ClassUtil循环调用问题
|
||||||
|
* 【core】 修复MapConvert转换Bean为Map类型没有转换成功问题
|
||||||
|
|
||||||
-------------------------------------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
@ -3,6 +3,7 @@ package cn.hutool.core.convert;
|
|||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
import cn.hutool.core.lang.Console;
|
||||||
import cn.hutool.core.util.ArrayUtil;
|
import cn.hutool.core.util.ArrayUtil;
|
||||||
import cn.hutool.core.util.CharUtil;
|
import cn.hutool.core.util.CharUtil;
|
||||||
import cn.hutool.core.util.ClassUtil;
|
import cn.hutool.core.util.ClassUtil;
|
||||||
@ -49,7 +50,7 @@ public abstract class AbstractConverter<T> implements Converter<T>, Serializable
|
|||||||
if (null == value) {
|
if (null == value) {
|
||||||
return defaultValue;
|
return defaultValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (null == defaultValue || targetType.isInstance(defaultValue)) {
|
if (null == defaultValue || targetType.isInstance(defaultValue)) {
|
||||||
if (targetType.isInstance(value) && false == Map.class.isAssignableFrom(targetType)) {
|
if (targetType.isInstance(value) && false == Map.class.isAssignableFrom(targetType)) {
|
||||||
// 除Map外,已经是目标类型,不需要转换(Map类型涉及参数类型,需要单独转换)
|
// 除Map外,已经是目标类型,不需要转换(Map类型涉及参数类型,需要单独转换)
|
||||||
|
@ -1,9 +1,5 @@
|
|||||||
package cn.hutool.core.convert.impl;
|
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.bean.BeanUtil;
|
||||||
import cn.hutool.core.convert.AbstractConverter;
|
import cn.hutool.core.convert.AbstractConverter;
|
||||||
import cn.hutool.core.convert.ConverterRegistry;
|
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.StrUtil;
|
||||||
import cn.hutool.core.util.TypeUtil;
|
import cn.hutool.core.util.TypeUtil;
|
||||||
|
|
||||||
|
import java.lang.reflect.Type;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Map.Entry;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@link Map} 转换器
|
* {@link Map} 转换器
|
||||||
*
|
*
|
||||||
@ -52,7 +52,7 @@ public class MapConverter extends AbstractConverter<Map<?, ?>> {
|
|||||||
@Override
|
@Override
|
||||||
@SuppressWarnings({ "rawtypes", "unchecked" })
|
@SuppressWarnings({ "rawtypes", "unchecked" })
|
||||||
protected Map<?, ?> convertInternal(Object value) {
|
protected Map<?, ?> convertInternal(Object value) {
|
||||||
final Map map;
|
Map map;
|
||||||
if (value instanceof Map) {
|
if (value instanceof Map) {
|
||||||
final Type[] typeArguments = TypeUtil.getTypeArguments(value.getClass());
|
final Type[] typeArguments = TypeUtil.getTypeArguments(value.getClass());
|
||||||
if (null != typeArguments //
|
if (null != typeArguments //
|
||||||
@ -66,6 +66,8 @@ public class MapConverter extends AbstractConverter<Map<?, ?>> {
|
|||||||
convertMapToMap((Map) value, map);
|
convertMapToMap((Map) value, map);
|
||||||
} else if (BeanUtil.isBean(value.getClass())) {
|
} else if (BeanUtil.isBean(value.getClass())) {
|
||||||
map = BeanUtil.beanToMap(value);
|
map = BeanUtil.beanToMap(value);
|
||||||
|
// 二次转换,转换键值类型
|
||||||
|
map = convertInternal(map);
|
||||||
} else {
|
} else {
|
||||||
throw new UnsupportedOperationException(StrUtil.format("Unsupport toMap value type: {}", value.getClass().getName()));
|
throw new UnsupportedOperationException(StrUtil.format("Unsupport toMap value type: {}", value.getClass().getName()));
|
||||||
}
|
}
|
||||||
|
@ -82,7 +82,7 @@ public class MapUtil {
|
|||||||
* @return HashMap对象
|
* @return HashMap对象
|
||||||
*/
|
*/
|
||||||
public static <K, V> HashMap<K, V> newHashMap() {
|
public static <K, V> HashMap<K, V> newHashMap() {
|
||||||
return new HashMap<K, V>();
|
return new HashMap<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -400,7 +400,7 @@ public class MapUtil {
|
|||||||
return resultList;
|
return resultList;
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean isEnd = true;// 是否结束。标准是元素列表已耗尽
|
boolean isEnd;// 是否结束。标准是元素列表已耗尽
|
||||||
int index = 0;// 值索引
|
int index = 0;// 值索引
|
||||||
Map<K, V> map;
|
Map<K, V> map;
|
||||||
do {
|
do {
|
||||||
@ -736,7 +736,7 @@ public class MapUtil {
|
|||||||
* @since 4.5.4
|
* @since 4.5.4
|
||||||
*/
|
*/
|
||||||
public static <K, V> MapWrapper<K, V> wrap(Map<K, V> map) {
|
public static <K, V> MapWrapper<K, V> wrap(Map<K, V> map) {
|
||||||
return new MapWrapper<K, V>(map);
|
return new MapWrapper<>(map);
|
||||||
}
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------------------------- builder
|
// ----------------------------------------------------------------------------------------------- builder
|
||||||
|
Loading…
x
Reference in New Issue
Block a user