java - ArrayList 返回错误值

标签 java arraylist

这与 Array of objects in a class 相关。我最初将其添加到该问题中,但由于该问题已得到解答,所以我没有得到答复。

所以我有两个类。其中一个包含另一个类的列表。我正在将数据添加到从数据库中提取的类中。但是,当我从列表中取出数据时,值都是相同的。它们是列表中最后一个元素的值。

我尝试在每个循环中重新创建对象,但它似乎仍然导致问题。我不明白我在这里做错了什么。

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;

}

为什么将文件名和目录设为静态?它只能包含一个值。让它们成为非静态的,它就会起作用。

关于java - ArrayList 返回错误值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16258999/

相关文章:

java - MockMVC 返回空主体

java - 如何获取JAVA中所有被调用的方法

java - 教程中的 jFreeChart 自定义条形颜色错误

java - 在 docker 容器内使用 headless chrome 运行 gauge java 规范

Java ArrayList get() 方法不返回 Point 对象?

java - 我可以在列表声明中使用泛型通配符吗?

java - 如何使用键盘激活 JTextField

java - 如何使用 Map 键作为列表对象和值作为顺序对 ArrayList 进行排序?

java - 在二维数组中添加对象大小未知的JAVA列表

java - 数组列表自定义位置