Java Kotlin:将具有多个值类型的HashMap传递到函数中
我有一个如下所示的HashMap:Java Kotlin:将具有多个值类型的HashMap传递到函数中,java,android,constructor,hashmap,Java,Android,Constructor,Hashmap,我有一个如下所示的HashMap: { "name": "George", "weeks": [ { "checked": true, "days": [ { "checked": true, "exercises": [ {
{
"name": "George",
"weeks": [
{
"checked": true,
"days": [
{
"checked": true,
"exercises": [
{
"exercise": "Bench Press",
"sets": [
{
"weight": 300,
"reps": 20
},
{
"weight": 400,
"reps": 30
}
]
}
]
}
]
}
]
}
所以我想我可以把它传递给一个类的构造函数,就像这样:
data class Gainer(val weeks: ArrayList<HashMap<String, ArrayList<HashMap<String, ArrayList<HashMap<String, ArrayList<HashMap<String, Long>>>>>>>>?, val name: String?) {
但是,我遇到了以下错误:
java.lang.RuntimeException:无法反序列化对象。应为列表,但在字段“weeks.[0].days.[0].练习[0].练习”中找到了类java.lang.String
我猜我得到这个错误是因为当我指定Hashmap时,它期望String作为键类型,ArrayList作为值类型。但是,有时我会将布尔值设置为一个值,将ArrayList设置为另一个值。我不知道如何指定多个值类型
编辑:我所传递的实际上并不像所显示的那样是json数据。从技术上讲,这是一个文档快照。我是从消防商店买的。对不起,我应该更清楚地说明这一点。我总是使用Json来创建Kotlin类插件
Json to Kotlin类是一个插件,它使从Json文件创建POJO变得更容易,它将解决创建数据类的问题。
您可以在此gif中查看用法:
您应该下载并添加Android Studio或IntelliJ IDE作为插件
这里是下载链接~>
它救了我的命 我总是使用Json来创建Kotlin类插件
Json to Kotlin类是一个插件,它使从Json文件创建POJO变得更容易,它将解决创建数据类的问题。
您可以在此gif中查看用法:
您应该下载并添加Android Studio或IntelliJ IDE作为插件
这里是下载链接~>
它救了我的命 从Java的角度来看,有一件事可能有助于处理多级hashmap
Map<String, Object> myMap = new HashMap<String, Object>()
正如在java中一样,Object是所有对象的父类,因此在map中作为值传递Object可以满足任何级别的map。从java的角度来看,有一件事可能有助于处理多级hashmap
Map<String, Object> myMap = new HashMap<String, Object>()
正如在java中一样,Object是所有对象的父类,所以在map中作为值传递Object可以满足任何级别的map。为什么要使用如此复杂的结构?我认为在数据类中序列化要好得多。为什么要使用如此复杂的结构?我认为在数据类中序列化它要好得多。