我非常接近让这个项目发挥作用,但我陷入了一件让我发疯的事情上,我在我的研究中找不到任何有效的东西。
我需要做的是每次 for 循环经过记录集时声明一个新变量,但我需要在变量名称中使用索引值 (i)。
我需要帮助的行是 Bottles o[i] = new Bottles();
每次 for 循环再次通过时,我都需要定义一个新变量,例如,我的变量最终应该是 o1、o2、o3 等。我现在在 [i] 上遇到语法错误我似乎不知道如何做到这一点。
对我在这里缺少的东西有什么想法吗?
private void getBottles() {
try {
m_bottles = new ArrayList<Bottles>();
for (int i = 0; i < bottleNamesMap.size(); i++) {
Bottles o[i] = new Bottles();
o[i].setbottleID(bottleIntMap.get("bottleID" + i));
o[i].setname_abbr(bottleNamesMap.get("name" + i));
o[i].setorigin(bottleNamesMap.get("origin" + i));
o[i].setbottlePicture(bottleNamesMap.get("bottlePicture" + i));
o[i].setprice_reported(bottleNamesMap.get("price" + i));
o[i].setdistillery(bottleNamesMap.get("distillery" + i));
o[i].setagg_score(bottleIntMap.get("aggscore" + i));
m_bottles.add(o[i]);
Thread.sleep(2000);
Log.i("ARRAY", "" + m_bottles.size());
}
} catch (Exception e) {
Log.e("BACKGROUND_PROC", e.getMessage());
}
runOnUiThread(returnRes);
}
最佳答案
Bottles o[i] = new Bottles();
应该是:
Bottles o = new Bottles();
然后删除[i]
。 new 关键字每次迭代都会创建一个新对象。
Bottles o = new Bottles();
o.setbottleID(bottleIntMap.get("bottleID"+i));
o.setname_abbr(bottleNamesMap.get("name"+i));
o.setorigin(bottleNamesMap.get("origin"+i));
o.setbottlePicture(bottleNamesMap.get("bottlePicture"+i));
o.setprice_reported(bottleNamesMap.get("price"+i));
o.setdistillery(bottleNamesMap.get("distillery"+i));
o.setagg_score(bottleIntMap.get("aggscore"+i));
m_bottles.add(o);
关于java - 使用索引 (i) 在 for 循环中声明变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8704461/