ArrayList返回错误值
这与Array of objects in a class有关。我原来把它加入到这个问题中,但是因为这个问题得到了回答,我没有得到答复。ArrayList返回错误值
所以我有2个班。一个包含另一个类的列表。我将数据添加到已从数据库中提取的类中。但是,当我将数据从列表中拉出时,值都是一样的。它们是列表中最后一个元素的值。
我曾尝试在每个循环中重新创建对象,但它似乎仍然会导致问题。我没有看到我在这里做错了什么。
public class xmldata {
String Barcode;
String First;
String Last;
String Phone;
String Email;
String md5sum;
String zipfile;
List<PictureData> pics = new ArrayList<PictureData>();
...
public class PictureData {
static String filename;
static String directory;
...
xmldata data = new xmldata();
ResultSet pictures=db.query("select * from pictures where barcode=?",barcode);
while (pictures.next()) {
PictureData pictemp= new PictureData();
pictemp.setdirectory(pictures.getString("path"));
pictemp.setfilename(pictures.getString("filename"));
data.pics.add(pictemp);
}
...
for (int j=0; j<data.pics.size();++j) {
String path;
PictureData pictemp2= new PictureData();
pictemp2=(PictureData) data.pics.get(j);
path=pictemp2.getdirectory()+pictemp2.getfilename();
System.out.println(path);
zip.addfile(path);
}
问题是在这里:
public class PictureData {
static String filename;
static String directory;
}
你为什么使文件名和目录是静态的?它只能包含一个值。使它们不是静态的,它会起作用。
+1,你跟着另一篇文章:) – 2013-04-28 02:52:25
所以eventhough,我有这个类的多个实例,它只能保存一个值,因为它是静态的,因此对所有实例相同? – Codeguy007 2013-04-28 02:56:34
@ Codeguy007:是的,静态在类级而不是实例级。 – Lokesh 2013-04-28 02:57:29
你在浏览data.pics中的内容后是否已经崩溃了? – 2013-04-28 02:44:57
它实际上并没有告诉我那里有什么。它只是列出了图片> elementData> [0] PictureData(id = 43)和图片> elementData> [1] PictureData(id = 45) – Codeguy007 2013-04-28 02:50:22
你的PictureData在哪里? – StarPinkER 2013-04-28 02:51:33