你调用setCurrent(other);
再getCurrent()得到的是root而不是other吗?

解决方案 »

  1.   

    这样得到的是other,但是一旦用其他函数current就变成root
      

  2.   

    怎么会,难道其它函数里有setCurrent,或new parseXML();
      

  3.   

    this.current=current,这是引用吧。我怀疑是由于引用的对象已经被java回收了,所以this.current也就成了null。只是一个想法,不过这种引用的方法还是很危险的。
      

  4.   

    你在哪里调用getCurrent()得到正确的结果,其他函数又是哪里的函数?
      

  5.   

    to:kadina(次帅) 
    那怎么引用是安全可靠的呢?我的程序就在这里卡住了,请大家帮忙!!to:remanwang(玩玩儿) 
    不管在哪里调用getCurrent()结果都是正确的,
    我是用setCurrent设置当前节点,然后对当前节点进行操作,
    在进行操作前调用getCurrent()结果没有错,
    但是下一步current必然被设置为root,苦恼啊。
      

  6.   

    你现在的程序看不出什么来,可能是别的地方的错,还有你的current是从那里传入的?
      

  7.   

    先解析xml,根据条件获得正确结点,然后通过setCurrent(Element current)设置当前结点,
    这时使用getCurrent()可以获得current的值,但是一调用其他的函数current就为null。
    我在每个函数的开头都判断current是否为null,如果为null,那么current=root,如果不为空,就使用current的值,但每次都是root,郁闷中。
      

  8.   


          if(current==null){
             current=root;  //将这么语句改为:this.current = root;
          }