android - 对象的 ArrayList 未在新的 ArrayList 对象中设置
问题描述
try {
JSONObject jsonObject = new JSONObject(botResponse.getResponseStringUrl());
JSONArray array = jsonObject.getJSONArray("value");
for (int i = 0; i < array.length(); i++) {
JSONObject jo = array.getJSONObject(i);
String seq = jo.getString("sequenceNo");
Log.d("sequenceNo", seq + "iteration" + i);
lo = new ListObject();
lo.setStaffID(jo.getString("staffID"));
lo.setStatus(jo.getString("status"));
lo.setSequenceNo(jo.getString("sequenceNo"));
lo.setReason(jo.getString("reason"));
lo.setFrom(jo.getString("from"));
lo.setDays(jo.getString("days"));
lo.setLeaveType(jo.getString("leaveType"));
lo.setTo(jo.getString("to"));
lo.setName(jo.getString("name"));
developersLists.add(lo);
botresponselist.add(lo);
}
message.setMessageList(botresponselist);
message.setDevelopersList(developersLists);
}
developerlist 的所有多个值均未在 message.setDevelopersList 中设置。因为 setDevelopersList 是在消息类中创建的新数组列表。只有第一个对象被设置,而不是所有对象。但对象 lo 显示多个值。先感谢您
解决方案
问题是您正在创建 ListObject 的新实例并保存在同一个变量中,因此它将只存储一个值。您必须在 for 循环中创建一个新的 ListObject 实例。
只需在 for 循环中添加它,而不是在 for 循环之外声明 ListObject。
ListObject lo = new ListObject();
推荐阅读
- php - Laravel 5.6 - validate() 函数不返回 422 无效输入
- php - 可以使用我自己的亚马逊搜索
- php - MySQL 服务器安装耗时过长
- assembly - 为什么eax包含向量参数的数量?
- javascript - chrome 中的 console.log() 无法正常工作
- r - 调整ggplot对象中的图例标题位置,R
- react-native - 反应本机导航 v2 设置问题
- sql - LAG / OVER / PARTITION / ORDER BY 使用条件 - SQL Server 2017
- c++ - c ++:文件格式错误中的libcurl请求
- python - 具有由数组条目组成的列的熊猫查询