我正在使用名为ItemHolder的类来保存列表中的一些对象。动态地添加一些。在某个时候,我需要清除项目(所有这些项目)以添加新项目。当我尝试从列表中获取项目时,我得到IndexOutOfBoundException。Kotlin arrayList - 不能重写列表
这里是我使用的代码:在初始化
内ItemHolder
var itemList : ArrayList<Item> = arrayListOf()
在另一大类:
itemHolder.itemList = arrayListOf()
后来又在同一类:
itemHolder.itemList.add(position, database.getRandomData())
和:
itemHolder.getItem(position)
的问题是,当我第一次使用类它工作正常,但第二次抛出我的异常。
FATAL EXCEPTION: main
Process: studio.monk.rq, PID: 2812
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.get(ArrayList.java:411)
at studio.monk.rq.common.ItemHolder.getItem(ItemHolder.kt:9)
at studio.monk.rq.fragments.MainFragment$onCreateView$vpPageChangeListener$1.onPageSelected(MainFragment.kt:44)
at studio.monk.rq.fragments.MainFragment$onCreateView$1.run(MainFragment.kt:51)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6119)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
Kotlin列表是不可变的。使用'mutableListOf' –
@RachitMishra它与此无关,这只是一个来自Java的标准ArrayList –
嗯!是的,我的坏!你可以发布例外吗? –