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)
有谁能解释我发生了什么?
我不认为您在代码中的任何位置创建新的ArrayList,因此每次运行解析代码时,解析的元素都会附加到旧的.
尝试类似的东西:
categoryArray = new ArrayList<clsCategory>();
Run Code Online (Sandbox Code Playgroud)
在方法的开头.