【发布时间】:2018-03-27 00:52:35
【问题描述】:
我正在使用一个名为 ItemHolder 的类来保存 List 中的一些对象。我动态地添加了一些 .在某个时候,我需要清除项目(所有项目)以添加新项目。当我尝试从列表中获取项目时,我得到了 IndexOutOfBoundException 。
这是我使用的代码:
在ItemHolder里面
var itemList : ArrayList<Item> = arrayListOf()
在 init 的另一个类中:
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
-
嗯!是的,我的坏!你能发布例外吗?
-
@Rachit Mishra 已添加。我还检查了日志,添加方法出现在 get so idk 为什么它不会添加项目之前
-
这是关于你的代码的执行顺序。只知道几行代码是无法调试的。
标签: android arraylist collections kotlin