Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Kotlin:将具有多个值类型的HashMap传递到函数中_Java_Android_Constructor_Hashmap - Fatal编程技术网

Java Kotlin:将具有多个值类型的HashMap传递到函数中

Java Kotlin:将具有多个值类型的HashMap传递到函数中,java,android,constructor,hashmap,Java,Android,Constructor,Hashmap,我有一个如下所示的HashMap: { "name": "George", "weeks": [ { "checked": true, "days": [ { "checked": true, "exercises": [ {

我有一个如下所示的HashMap:

{
    "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。

为什么要使用如此复杂的结构?我认为在数据类中序列化要好得多。为什么要使用如此复杂的结构?我认为在数据类中序列化它要好得多。