【发布时间】:2010-08-19 23:40:11
【问题描述】:
我正在尝试将一个对象添加到数组列表中,但是当我查看数组列表的结果时,它会不断将相同的对象一遍又一遍地添加到数组列表中。我想知道实现它的正确方法是什么。
public static ArrayList<Person> parsePeople(String responseData) {
ArrayList<Person> People = new ArrayList<Person>();
try {
JSONArray jsonPeople = new JSONArray(responseData);
if (!jsonPeople.isNull(0)) {
for (int i = 0; i < jsonPeople.length(); i++) {
People.add(new Person(jsonPeople.getJSONObject(i)));
}
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
}
return People;
}
我已经仔细检查了我的 JSONArray 数据并确保它们没有重复。它似乎一直在一遍又一遍地添加第一个对象。
【问题讨论】:
-
一切对我来说都是正确的,只要将项目添加到您的列表中。只是出于好奇,您能否提供您的联系人类的代码?取决于此,以及 getJSONObject 是如何实现的,我知道它是如何做你所描述的。
-
永远不要默默地捕捉到最抽象的异常。绝不。并在发布或显示其他人之前删除那些“// TODO 自动生成的捕获块”cmets,签入代码。禁用生成。
-
@user unknown:虽然你是对的,但我认为不值得对这个问题投反对票。恕我直言,它非常清晰有用。
-
@StriplingWarrior:不确定发布此内容的最佳方式,因为它对于评论而不是答案来说太大了。联系人类可以在这里找到:pastebin.com/3qSHCii1
-
一些用户通常会在他们的原始问题中附加一个“更新”部分,但 pastebin 对我来说很好。根据 Contact 类的代码,我很确定问题不在那里。由于您已经仔细检查了输入,我不得不认为您以某种方式错误地检查了输出。您是否尝试过为此方法编写单元测试?如果有,它是什么样子的?
标签: java android android-activity performance arraylist