为了账号安全,请及时绑定邮箱和手机立即绑定

endElement中

bookList.add(book);

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

正在回答

3 回答

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

0 回复 有任何疑惑可以回复我~
#1

街边七号 提问者

非常感谢!
2017-11-23 回复 有任何疑惑可以回复我~

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

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

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

0 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~
#1

街边七号 提问者

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

举报

0/150
提交
取消

endElement中

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信