问题:ArrayList大小增加

Bad*_*Boy 0 java arraylist android-emulator

喜正与解析XML文件,我回国工作ArrayList类的Objects,但是这种方法的每一个电话,该ArrayList的大小从0-8和8个增加到16和24 ...而不是创建一个新的ArrayList对象.

这是代码:

public ArrayList<clsCategory> ParseCategoryXml(String fileToParse)
{
    try 
    {
        System.out.println("before XML Pasing Array size is = " + categoryArray.size());

            /** Handling XML */
            SAXParserFactory spf = SAXParserFactory.newInstance();
            SAXParser sp = spf.newSAXParser();
            XMLReader xr = sp.getXMLReader();

            /** Send URL to parse XML Tags */
            //URL sourceUrl = new URL("http://d.mobrobot.com/feeds/npv1/categories_Fox.xml");
            FileInputStream inputFile = new FileInputStream(fileToParse);
            /** Create handler to handle XML Tags ( extends DefaultHandler ) */
            xr.setContentHandler(this);
            xr.parse(new InputSource(inputFile));
    }
    catch (Exception e) 
    {
        System.out.println("XML Pasing Excpetion = " + e);
    }
    System.out.println("XML Pasing Array size is = " + categoryArray.size());
    return categoryArray;
}
Run Code Online (Sandbox Code Playgroud)

控制台中的输出

XML Pasing Array size is = 8  //when First call of method
XML Pasing Array size is = 16  //when Secondcall of method
Run Code Online (Sandbox Code Playgroud)

有谁能解释我发生了什么?

Zar*_*nen 5

我不认为您在代码中的任何位置创建新的ArrayList,因此每次运行解析代码时,解析的元素都会附加到旧的.

尝试类似的东西:

categoryArray = new ArrayList<clsCategory>();
Run Code Online (Sandbox Code Playgroud)

在方法的开头.