Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.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 ';Var';必须在Kotlin中初始化_Java_Class_Kotlin_Methods_Instance - Fatal编程技术网

Java ';Var';必须在Kotlin中初始化

Java ';Var';必须在Kotlin中初始化,java,class,kotlin,methods,instance,Java,Class,Kotlin,Methods,Instance,你们中有人能帮我解决这个小问题吗?我对Kotlin和Android开发非常陌生!我不明白为什么这段代码会返回以下错误: class Catalog { var musicList: List<Music> = ArrayList() } class Music{ var id: String = "" } fun main(args: Array<String>) { var test: Catalog test.musicList[0]

你们中有人能帮我解决这个小问题吗?我对Kotlin和Android开发非常陌生!我不明白为什么这段代码会返回以下错误:

class Catalog {
var musicList: List<Music> = ArrayList()
}

class Music{
    var id: String = ""
}

fun main(args: Array<String>) {  
    var test: Catalog
    test.musicList[0] = "1"  
}
怎么了?
谢谢大家!

在调用
musicList
的getter之前,需要实例化它:

funmain(args:Array){
var test=Catalog()
test.musicList[0]=“1”
}
此外,如果不重新分配
test
的值,可以将其声明为
val

funmain(args:Array){
val test=Catalog()
test.musicList[0]=“1”
}
在此之后,您将出现其他2个错误:

  • 由于
    列表
    是不可变的,因此不能使用运算符
    []
    赋值
  • 要解决此问题,可以使用
    MutableList
    而不是
    List

    类目录{
    val musicList=mutableListOf()
    }
    
  • 索引0处没有项,因此会出现越界异常。 要解决此问题,可以添加元素:
  • funmain(args:Array){
    var test=Catalog()
    test.musicList+=音乐(“1”)
    }
    
    在调用
    musicList
    的getter之前,需要实例化它:

    funmain(args:Array){
    var test=Catalog()
    test.musicList[0]=“1”
    }
    
    此外,如果不重新分配
    test
    的值,可以将其声明为
    val

    funmain(args:Array){
    val test=Catalog()
    test.musicList[0]=“1”
    }
    
    在此之后,您将出现其他2个错误:

  • 由于
    列表
    是不可变的,因此不能使用运算符
    []
    赋值
  • 要解决此问题,可以使用
    MutableList
    而不是
    List

    类目录{
    val musicList=mutableListOf()
    }
    
  • 索引0处没有项,因此会出现越界异常。 要解决此问题,可以添加元素:
  • funmain(args:Array){
    var test=Catalog()
    test.musicList+=音乐(“1”)
    }
    
    在Kotlin中,可以通过两种方式初始化变量

  • 默认值为。。。var-temp:String=“”
  • 使用lateinit关键字初始化(意味着您稍后将初始化),如。。。lateinit变量临时值:字符串
  • 在您的情况下,您不使用lateinit,因此需要使用默认值初始化变量

    var test = Catalog()
    
    或者如果你想初始化为null

    var test:Catalog? = null
    

    在Kotlin中,可以通过两种方式初始化变量

  • 默认值为。。。var-temp:String=“”
  • 使用lateinit关键字初始化(意味着您稍后将初始化),如。。。lateinit变量临时值:字符串
  • 在您的情况下,您不使用lateinit,因此需要使用默认值初始化变量

    var test = Catalog()
    
    或者如果你想初始化为null

    var test:Catalog? = null
    

    您没有初始化
    测试
    您没有初始化
    测试