修复Pair序列化转换无效问题

This commit is contained in:
Looly 2023-06-29 17:28:20 +08:00
parent d494e001b6
commit dc23237651
3 changed files with 10 additions and 13 deletions

View File

@ -15,6 +15,7 @@
* 【core 】 修复序列化和反序列化Class问题issue#I7FQ29@Gitee
* 【setting】 修复utf8-bom的setting文件读取问题issue#I7G34E@Gitee
* 【core 】 修复PathUtil.getMimeType可能造成的异常issue#3179@Github
* 【core 】 修复Pair序列化转换无效问题issue#I7GPGX@Github
-------------------------------------------------------------------------------------------------------------
# 5.8.20(2023-06-16)

View File

@ -42,7 +42,7 @@ public class ConverterRegistry implements Serializable {
/**
* 默认类型转换器
*/
private Map<Type, Converter<?>> defaultConverterMap;
private Map<Class<?>, Converter<?>> defaultConverterMap;
/**
* 用户自定义类型转换器
*/
@ -154,7 +154,7 @@ public class ConverterRegistry implements Serializable {
*/
@SuppressWarnings("unchecked")
public <T> Converter<T> getDefaultConverter(Type type) {
return (null == defaultConverterMap) ? null : (Converter<T>) defaultConverterMap.get(type);
return (null == defaultConverterMap) ? null : (Converter<T>) defaultConverterMap.get(TypeUtil.getClass(type));
}
/**

View File

@ -14,20 +14,16 @@ package cn.hutool.json;
import cn.hutool.core.lang.Pair;
import cn.hutool.core.lang.TypeReference;
import org.junit.Assert;
import org.junit.Test;
public class IssueI7GPGXTest {
@Test
public void toBeanTest() throws NoSuchMethodException {
Pair<String, Boolean> hutoolPair = getHutoolPair();
String a = JSONUtil.toJsonStr(hutoolPair);
System.out.println(a);
System.out.println("=====================================");
Pair<String, Boolean> pair = JSONUtil.toBean(a, new TypeReference<Pair<String, Boolean>>() {}, false);
System.out.println(JSONUtil.toJsonStr(pair));
}
public static Pair<String, Boolean> getHutoolPair() {
return new Pair<>("test1", true);
@Test
public void toBeanTest() {
final Pair<String, Boolean> hutoolPair = new Pair<>("test1", true);
final String a = JSONUtil.toJsonStr(hutoolPair);
final Pair<String, Boolean> pair = JSONUtil.toBean(a, new TypeReference<Pair<String, Boolean>>() {}, false);
Assert.assertEquals(hutoolPair, pair);
}
}