endElement中

来源:3-4 使用 SAX 解析将 XML 的内容和结构存入 JAVA 对象

街边七号

2017-11-18 09:48

bookList.add(book);

之后的一句book = null;有什么用    不管你是不是置空下一次的startElement还是会new Book啊即使同名都为book但还是两个不同的对象啊,所以问一下这个book = null;是用来干嘛啊

写回答 关注

3回答

  • 慕粉4262062
    2017-11-23 21:32:01
    已采纳

    而且每轮用完全局变量后,取null,可以减少内存消耗

    街边七号

    非常感谢!

    2017-11-23 22:51:56

    共 1 条回复 >

  • 慕粉4262062
    2017-11-23 21:14:28

    初始时,book为局部变量,每次startElement时都需new book创建,所以值都为null;

    后需要遍历data set时需要调用book,需要将book变更为全局变量,而全局变量一轮用完后需清空,防止data残留,故需加book=null;

    每次Start都有新建book,默认值都为null,与清空book同效,所以感觉没啥用吧,其实全局变量一轮用完后,为防止对下一轮使用有影响,通常都初始设定,此处是null,说不定其他位置可能是数值呢。

  • 慕粉4262062
    2017-11-18 11:02:12

    因为book是全局变量,不添加的话,下一次调用就先有值了

    街边七号

    全局变量中Book book = null 每次进入startElement之后判断qName是book就会book = new Book(); 在endElement中判断qName是book就会将当前的Book对象存进ArrayList 下次遍历第二本书的节点的时候book = new Book();会把原来的覆盖掉啊 而且我试着不加那句book = null;也完全没有什么异样啊 求解===

    2017-11-18 12:52:59

    共 1 条回复 >

Java眼中的XML---文件读取

通过Java认识并且创造XML文件,如何应用 Java“解析 XML

83202 学习 · 431 问题

查看课程

相似问题