Java 返回错误值的ArrayList

Java 返回错误值的ArrayList,java,arraylist,Java,Arraylist,这是有关的。我最初把它添加到那个问题上,但因为那个问题得到了回答,我没有得到回答 所以我有两门课。一个包含另一个类的列表的类。我将数据添加到我从数据库中取出的类中。但是,当我从列表中提取数据时,值都是相同的。它们是列表中最后一个元素的值 我已经尝试在每个循环中重新创建对象,但它似乎仍然会导致问题。我看不出我做错了什么 public class xmldata { String Barcode; String First; String Last; String P

这是有关的。我最初把它添加到那个问题上,但因为那个问题得到了回答,我没有得到回答

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

我已经尝试在每个循环中重新创建对象,但它似乎仍然会导致问题。我看不出我做错了什么

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;

}
为什么要将文件名和目录设置为静态?它只能包含一个值。使它们成为非静态的,它就会工作。

问题在于:

public class PictureData {

    static String filename;
    static String directory;

}

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

你有没有在一段时间后中断以查看data.pics中的内容?它实际上没有告诉我里面有什么。它只列出了pics>elementData>[0]PictureDataid=43和pics>elementData>[1]PictureDataid=45你的PictureData在哪里?@JermaineXu:查看他之前提到的帖子。它就在那里。抱歉,我以为它在我复制的内容中。你有没有在一段时间后中断以查看data.pics中的内容?它实际上没有告诉我里面有什么。它只列出了pics>elementData>[0]PictureDataid=43和pics>elementData>[1]PictureDataid=45你的PictureData在哪里?@JermaineXu:查看他之前提到的帖子。它就在那里。很抱歉,我以为它在我复制的内容中。所以,尽管我有多个类实例,但它只能保存一个值,因为它是静态的,因此对所有实例都是相同的?@Codeguy007:是的,静态在类级别而不是实例级别。我有同样的问题,我也没有声明它们是静态的。不知道为什么会这样。虽然我有多个类实例,但它只能保存一个值,因为它是静态的,因此对所有实例都是相同的?@Codeguy007:是的,静态是在类级别而不是实例级别。我有同样的问题,我也没有将它们声明为静态。不知道为什么
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;

}