fastjson 版本 :
com.alibabafastjson1.2.83
复现bug代码如下:List<Map<String,Object>> map = JSON.parseObject("[""]",new TypeReference<>(){});
yuvru6vn1#
[""]格式不太对,[{}]这样才对,TypeReference要指定泛型吧。
tjjdgumg2#
格式不对你可以报错,报格式不正确。而你报个OOM?你觉得合理吗?
sf6xfgos3#
这样一行代码,怎么可能导致OOM!TypeReference不指定泛型,连编译都过不了,就别说运行了。我指定泛型之后,编译通过,运行正常,你应该找错原因了List<Map<String,Object>> map = JSON.parseObject("[\"\"]",new TypeReference<ArrayList>(){});
List<Map<String,Object>> map = JSON.parseObject("[\"\"]",new TypeReference<ArrayList>(){});
zysjyyx44#
这样一行代码,怎么可能导致OOM!TypeReference不指定泛型,连编译都过不了,就别说运行了。 我指定泛型之后,编译通过,运行正常,你应该找错原因了 List<Map<String,Object>> map = JSON.parseObject("[\"\"]",new TypeReference<ArrayList>(){});
你试试下面这个,确定是比较有问题的。
var map = JSON.parseObject("[\"\"]", new TypeReference<ArrayList<HashMap<String, Object>>>() { });
gopyfrb35#
问题确实存在,有人知道这个 BUG 什么时候修复了吗? ----------- The problem does exist, does anyone know when this bug will be fixed?
wnrlj8wa6#
虽然复现了,楼主写法好像不对,泛型应该是这样写? List<String> map = JSON.parseObject("[\"\"]",new TypeReference<List<String>>(){});
List<String> map = JSON.parseObject("[\"\"]",new TypeReference<List<String>>(){});
zsohkypk7#
2.0.41 已修复
pgpifvop8#
应该是复杂泛型(多层套娃)导致的,简单泛型是不会有问题的。
// 简单泛型ArrayList正常 ArrayList<HashMap<String, Object>> map = JSON.parseObject("[\"\"]", new TypeReference<ArrayList>(){}); // 复杂泛型ArrayList<HashMap<String, Object>>会报异常 ArrayList<HashMap<String, Object>> map = JSON.parseObject("[\"\"]", new TypeReference<ArrayList<HashMap<String, Object>>>(){});
8条答案
按热度按时间yuvru6vn1#
[""]格式不太对,[{}]这样才对,TypeReference要指定泛型吧。
tjjdgumg2#
[""]格式不太对,[{}]这样才对,TypeReference要指定泛型吧。
格式不对你可以报错,报格式不正确。而你报个OOM?你觉得合理吗?
sf6xfgos3#
[""]格式不太对,[{}]这样才对,TypeReference要指定泛型吧。
格式不对你可以报错,报格式不正确。而你报个OOM?你觉得合理吗?
这样一行代码,怎么可能导致OOM!TypeReference不指定泛型,连编译都过不了,就别说运行了。
我指定泛型之后,编译通过,运行正常,你应该找错原因了
List<Map<String,Object>> map = JSON.parseObject("[\"\"]",new TypeReference<ArrayList>(){});
zysjyyx44#
[""]格式不太对,[{}]这样才对,TypeReference要指定泛型吧。
格式不对你可以报错,报格式不正确。而你报个OOM?你觉得合理吗?
这样一行代码,怎么可能导致OOM!TypeReference不指定泛型,连编译都过不了,就别说运行了。 我指定泛型之后,编译通过,运行正常,你应该找错原因了
List<Map<String,Object>> map = JSON.parseObject("[\"\"]",new TypeReference<ArrayList>(){});
你试试下面这个,确定是比较有问题的。
gopyfrb35#
问题确实存在,有人知道这个 BUG 什么时候修复了吗? ----------- The problem does exist, does anyone know when this bug will be fixed?
wnrlj8wa6#
问题确实存在,有人知道这个 BUG 什么时候修复了吗? ----------- The problem does exist, does anyone know when this bug will be fixed?
虽然复现了,楼主写法好像不对,泛型应该是这样写?
List<String> map = JSON.parseObject("[\"\"]",new TypeReference<List<String>>(){});
zsohkypk7#
2.0.41 已修复
pgpifvop8#
问题确实存在,有人知道这个 BUG 什么时候修复了吗? ----------- The problem does exist, does anyone know when this bug will be fixed?
虽然复现了,楼主写法好像不对,泛型应该是这样写?
List<String> map = JSON.parseObject("[\"\"]",new TypeReference<List<String>>(){});
应该是复杂泛型(多层套娃)导致的,简单泛型是不会有问题的。