Java 问题:ArrayList大小正在增加
大家好,我正在解析xml文件,我正在返回类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
对象的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>();