Gson很难像您一样反序列化多态对象
MutableList<DeviceDef>。这是您需要做的:
将RuntimeTypeAdapterFactory.java手动添加到您的项目中(似乎不是gson库的一部分)。另请参阅此答案。
更改您的代码以使用工厂
创建
Gson实例:
val adapter = RuntimeTypeAdapterFactory .of(DeviceDef::class.java) .registerSubtype(BluetoothDef::class.java) .registerSubtype(WiFiDef::class.java)val gson = GsonBuilder().setPrettyPrinting().registerTypeAdapterFactory(adapter).create()
- 在工厂中注册您的每个子类型,它将按预期工作:)



