Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 问题:ArrayList大小正在增加_Java_Android Emulator_Arraylist - Fatal编程技术网

Java 问题:ArrayList大小正在增加

Java 问题:ArrayList大小正在增加,java,android-emulator,arraylist,Java,Android Emulator,Arraylist,大家好,我正在解析xml文件,我正在返回类对象的ArrayList,但是对于此方法的每次调用,ArrayList的大小都从0-8和8增加到16和24。。。而不是创建新的ArrayList对象 代码如下: public ArrayList<clsCategory> ParseCategoryXml(String fileToParse) { try { System.out.println("before XML Pasing Array size i

大家好,我正在解析xml文件,我正在返回类
对象的
ArrayList
,但是对于此方法的每次调用,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;
}

有人能解释一下发生了什么吗?

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

尝试以下方法:

categoryArray = new ArrayList<clsCategory>();
categoryArray=newArrayList();

在方法的开头。

看起来
categoryArray
不是局部变量,而是实例变量。。这就是为什么每次通话它的大小都会增加

不,我叫‘newarraylist();’
在methodthx之外,我的问题解决了一点问题是ArrayList()是实例变量
categoryArray = new ArrayList<clsCategory>();