我有两个列表Kotlin,相同大小foodObjects: MutableList<ParseObject>?
和checked: MutableList<Boolean>?
。每当checked
的元素成立时,我需要做一个for循环,并从foodObjects
中获取objectId。所以这是在Java中:IndexOutOfBoundsException for循环在Kotlin
for(int i = 0; i< foodObjects.size(); i++) {
//here
}
但在Kotlin,我不知道为什么,有一些问题。事实上,如果我这样做:
for(i in 0..foodObjects!!.size)
{
if (checked?.get(i) == true) {
objectsId?.add(foodObjects.get(i).objectId)
}
}
我已经得到了IndexOutOfBoundsException
:我不知道为什么,就继续循环也在foodObjects.size
。我也可以用过滤器和地图来做:
(0..foodObjects!!.size)
.filter { checked?.get(it) == true }
.forEach { objectsId?.add(foodObjects.get(it).objectId) }
但是我给出了同样的错误。我需要停止它使用这个如果:
for(i in 0..foodObjects!!.size)
{
if(i < foodObjects.size) {
if (checked?.get(i) == true) {
objectsId?.add(foodObjects.get(i).objectId)
}
}
}
让它工作。
每个人都可以告诉我为什么在Kotlin我需要这样做,在Java中它工作的很好?
谢谢,我以为它和Java很相似,现在我明白了! – ste9206
对不起我的问题,但如何在recyclerview中使用此结构?我发现了同样的问题 – ste9206
我不确定你的问题是关于RecyclerView的,但你应该将它作为一个新问题发布。 – zsmb13