[alibaba/fastjson]复用构造函数中的map可能导致UnsupportedOperationException

2024-09-06 234 views
3

如图:

image

image

image

因为构造函数中的map是只读的,无法put。

建议构建函数中new一个HashMap,并将map中的内容复制进去。

版本:1.2.75

回答

3

我用的kotlin。 mapof会创建一个只读的Map,类似jdk里的Collections.unmodifiablemap。

5

嗯嗯,查到了!以前没有用过Kotlin。

3

研究了一下,你用mapOf新建出来的map就是不支持修改的呀。用JSONObject构造函数传进去赋值给它的成员变量map可以正常赋值,但是你不能修改它。如果你需要修改为啥不用mutableMapOf呢?

5

我觉得框架不应该信任传入的map吧,直接用传入的map进行修改难免出问题。