Kotlin “如何修复线程中的异常”;“主要”;java.lang.IndexOutOfBoundsException:索引:0,大小:0?
我试图从我的可变列表中打印,但总是越界。我把成员添加到菜单底部,然后每次我试图从列表成员打印东西时,我都会出错。这些成员是作为列表存储的类的对象。我想这和我写清单的方式有关,但我想不出来 我尝试以不同的方式将成员添加到列表中,但结果是相同的错误Kotlin “如何修复线程中的异常”;“主要”;java.lang.IndexOutOfBoundsException:索引:0,大小:0?,kotlin,Kotlin,我试图从我的可变列表中打印,但总是越界。我把成员添加到菜单底部,然后每次我试图从列表成员打印东西时,我都会出错。这些成员是作为列表存储的类的对象。我想这和我写清单的方式有关,但我想不出来 我尝试以不同的方式将成员添加到列表中,但结果是相同的错误 class membership () { var number: Int? = null var name: String? = null var address: String? = nul
class membership ()
{
var number: Int? = null
var name: String? = null
var address: String? = null
var zip: String? = null
var phone: String? = null
var memberSince: String? = null
var memberType: Char? = null
}
fun main(args: Array<String>) {
var Members: MutableList<membership> = mutableListOf()
var member1 = membership()
member1.number = 1
member1.name = "George Jetson"
member1.address ="123 Main St."
member1.zip = "99207"
member1.memberSince = "12/01/1997"
member1.memberType = 'L'
Members[0] = member1
println(Members[0].name)
}
// I have more members.
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.rangeCheck (ArrayList.java:653)
at java.util.ArrayList.set (ArrayList.java:444)
at FileKt.main (File.kt:45)
类成员资格()
{
变量编号:Int?=null
变量名称:字符串?=null
变量地址:字符串?=null
var-zip:String?=null
var电话:字符串?=null
var memberSince:字符串?=null
var memberType:Char?=null
}
趣味主线(args:Array){
变量成员:MutableList=mutableListOf()
var member1=成员资格()
member1.number=1
member1.name=“George Jetson”
member1.address=“123 Main St.”
member1.zip=“99207”
member1.memberSince=“12/01/1997”
member1.memberType='L'
成员[0]=成员1
println(成员[0]。名称)
}
//我有更多的成员。
线程“main”java.lang.IndexOutOfBoundsException中出现异常:索引:0,大小:0
位于java.util.ArrayList.rangeCheck(ArrayList.java:653)
位于java.util.ArrayList.set(ArrayList.java:444)
位于FileKt.main(File.kt:45)
我想说,如果以前未设置项目0,则您无法分配该项目。成员1需要添加一个
Members.add(member1)
嘿,我尝试了这个,它给了我一个错误“Assignment operators Ambization”Christian是对的,如果之前没有设置项0,您就不能将其分配给它,但您不应该编写
+=
。相反,Members.add(member1)
应该可以工作。+=
如果Members
是val
就可以了。(如果它是var
,则不起作用,因为它可能意味着Members=Members+something
或Members.add(something)
,编译器无法分辨您的意思。)顺便说一句,如果它保持通常的编码约定,并将其命名为Members
,那么这个问题就更容易理解了。您是对的,对不起,我相应地更正了答案。您应该尽量遵守命名约定(类成员、var成员)