我在Debug到断点停止之后将鼠标悬浮在变量上查看变量的值,但移开鼠标之后再看它的值发现变量的值变了!!求助大神,这是为什么啊这是第一次将鼠标移至navParameter这个类上查看其中的变量值
这是第二次
期间没有进行任何操作但是两次值发生了变化。这是为什么啊这段代码所在的地方是一个继承了Thread的类的构造函数。调试Android
这是第二次
期间没有进行任何操作但是两次值发生了变化。这是为什么啊这段代码所在的地方是一个继承了Thread的类的构造函数。调试Android
调试欢乐多
是一个构造函数里面:
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();
}
是一个构造函数里面:
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()构造函数仅仅是赋值。
做什么用的,不会是在一直更新经度与维度信息吧
问题找到了,是在navParam类中的toString()方法中调用了一个修改其值的函数,去掉toString方法中的这个函数,一切都正常了。经过测试发现,去查看类的值的时候会调用该类的toString方法因此不能在toString中改变这个变量的值不然就亮了坑爹啊。。
看前两幅图的断点的位置,还没运行到那一条语句呢。再说已经到了断点程序应该停止了啊
断点之前的代码估计会有更新经纬度的动作,你在仔细找找问题找到了,是在navParam类中的toString()方法中调用了一个修改其值的函数,去掉toString方法中的这个函数,一切都正常了。经过测试发现,在断点的地方去查看类的值的时候会调用该类的toString方法因此不能在toString中改变这个变量的值不然就亮了坑爹啊。。
看前两幅图的断点的位置,还没运行到那一条语句呢。再说已经到了断点程序应该停止了啊
断点之前的代码估计会有更新经纬度的动作,你在仔细找找问题找到了,是在navParam类中的toString()方法中调用了一个修改其值的函数,去掉toString方法中的这个函数,一切都正常了。经过测试发现,在断点的地方去查看类的值的时候会调用该类的toString方法因此不能在toString中改变这个变量的值不然就亮了坑爹啊。。
恭喜