android - Android kotlin - 添加到数组/ JSONArray 导致 ArrayIndexOutOfBoundsException
问题描述
我正在尝试将 mutablelist 转换为 jsonarray 以便能够将其发送到下一个活动,因为在不添加任何序列化插件的情况下只传递该死的 mutablelist 似乎是不可能的
这是我到目前为止所拥有的:
val arrr: Array<JSONObject> = arrayOf()
var curr = 0
for(jsonIndex in 0 until memes.size - 1) {
val rootObject = JSONObject()
rootObject.put("nickname", memes[jsonIndex].nickname)
rootObject.put("title",memes[jsonIndex].title)
arrr[curr] = rootObject
curr++
}
我得到错误:
ArrayIndexOutOfBoundsException: length=0; index=0
提到线
arrr[curr] = rootObject
这里有什么问题?
解决方案
当你实例化一个 Array 时,它永远有一个固定的大小(尽管如果它是一个var
你可以为变量分配一个新的、更大的数组)。如果您想要一些可以根据需要增长的东西,请使用 MutableList。但即使使用列表,您也无法跳转到尚未创建的索引。您add
改为使用该功能:
val arrr: MutableList<JSONObject> = mutableListOf()
//...
for(jsonIndex in 0 until memes.size - 1) {
val rootObject = JSONObject()
rootObject.put("nickname", memes[jsonIndex].nickname)
rootObject.put("title",memes[jsonIndex].title)
arrr.add(rootObject)
}
推荐阅读
- vb.net - 如何捕获 vb .net 中的错误?
- excel - 如何比较同一工作簿中 2 个 excel 工作表中的值,然后返回特定值
- java - 如何在 Android 应用上提出一系列问题并重复使用相同的片段和布局?
- stack-overflow - labview 异常:从 LAN 中的共享文件夹加载项目时堆栈溢出
- java - 替换不同子字符串前后的子字符串
- maven - 正确阅读外部属性
- ios - 在 iOS 13 的 UIScrollView 中设置 UIRefreshControl
- javascript - 在 JavaScript 中使用自定义错误而不是字符串的充分理由是什么?
- elasticsearch - 在elasticsearch中匹配json对象数组中的一个数组元素
- php - PHP 删除 [:en] [:] 之间的字符串