我在Debug到断点停止之后将鼠标悬浮在变量上查看变量的值,但移开鼠标之后再看它的值发现变量的值变了!!求助大神,这是为什么啊这是第一次将鼠标移至navParameter这个类上查看其中的变量值
这是第二次
期间没有进行任何操作但是两次值发生了变化。这是为什么啊这段代码所在的地方是一个继承了Thread的类的构造函数。调试Android

解决方案 »

  1.   


    是一个构造函数里面:
    public navThread() {
    // TODO Auto-generated constructor stub
    navProcessing = new navProc();
    fileOperation = new navFileOperation();
    //navParameter = new navParam(0,0,0,89.850004*navConstant.RAD,1.9113951*navConstant.RAD,1.0572407*navConstant.RAD,39.813330*navConstant.RAD,116.15326*navConstant.RAD);
    Log.i(Unity.TAG, "builder");
    navParameter = new navParam();
    navProcessing.Initial(navParameter, 0.01);
    navProcessing.updateNavParam();
    }
      

  2.   


    是一个构造函数里面:
    public navThread() {
    // TODO Auto-generated constructor stub
    navProcessing = new navProc();
    fileOperation = new navFileOperation();
    //navParameter = new navParam(0,0,0,89.850004*navConstant.RAD,1.9113951*navConstant.RAD,1.0572407*navConstant.RAD,39.813330*navConstant.RAD,116.15326*navConstant.RAD);
    Log.i(Unity.TAG, "builder");
    navParameter = new navParam();
    navProcessing.Initial(navParameter, 0.01);
    navProcessing.updateNavParam();
    }是通过在主线程的Handler中的handlerMessage中构造了这个类,问题就是在Debug停在断点后不断地查看navParamer的值结果值却一直在变,navParam()构造函数仅仅是赋值。
      

  3.   

    navProcessing.updateNavParam();
    做什么用的,不会是在一直更新经度与维度信息吧
      

  4.   


    问题找到了,是在navParam类中的toString()方法中调用了一个修改其值的函数,去掉toString方法中的这个函数,一切都正常了。经过测试发现,去查看类的值的时候会调用该类的toString方法因此不能在toString中改变这个变量的值不然就亮了坑爹啊。。
      

  5.   


    看前两幅图的断点的位置,还没运行到那一条语句呢。再说已经到了断点程序应该停止了啊
    断点之前的代码估计会有更新经纬度的动作,你在仔细找找问题找到了,是在navParam类中的toString()方法中调用了一个修改其值的函数,去掉toString方法中的这个函数,一切都正常了。经过测试发现,在断点的地方去查看类的值的时候会调用该类的toString方法因此不能在toString中改变这个变量的值不然就亮了坑爹啊。。
      

  6.   


    看前两幅图的断点的位置,还没运行到那一条语句呢。再说已经到了断点程序应该停止了啊
    断点之前的代码估计会有更新经纬度的动作,你在仔细找找问题找到了,是在navParam类中的toString()方法中调用了一个修改其值的函数,去掉toString方法中的这个函数,一切都正常了。经过测试发现,在断点的地方去查看类的值的时候会调用该类的toString方法因此不能在toString中改变这个变量的值不然就亮了坑爹啊。。
    恭喜