加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – Eclipse调试器跳转到错误的return语句

发布时间:2020-12-15 08:42:00 所属栏目:Java 来源:网络整理
导读:我遇到了一个非常奇怪的情况.我在 Android 2.1平台上使用Java(通过Eclipse Galileo)执行以下操作: // Get gravity geomagnetic data to return to the caller.final int SIZE_GRAVITY = 3,SIZE_GEOMAGNETIC = 3;final float[] NOT_USED = null;float[] outG
我遇到了一个非常奇怪的情况.我在 Android 2.1平台上使用Java(通过Eclipse Galileo)执行以下操作:

// Get gravity & geomagnetic data to return to the caller.
final int SIZE_GRAVITY = 3,SIZE_GEOMAGNETIC = 3;
final float[] NOT_USED = null;
float[] outGravity = new float[SIZE_GRAVITY];
float[] outGeomagnetic = new float[SIZE_GEOMAGNETIC];
final String NO_DATA_COULD_BE_READ = null;
boolean succeeded = SensorManager.getRotationMatrix(NOT_USED,NOT_USED,outGravity,outGeomagnetic);
if (!succeeded)
{
    return NO_DATA_COULD_BE_READ;
}

Log.v("Test","This should be printed - but it isn't!!");

// Prepare the data to return.
final int X = 0,Y = 1,Z = 2;
final String FIELD_SEPARATOR = ",",VECTOR_SEPARATOR = ";";
String returnValue = "" +
    outGravity[X] + FIELD_SEPARATOR +
    outGravity[Y] + FIELD_SEPARATOR +
    outGravity[Z] + VECTOR_SEPARATOR + 
    outGeomagnetic[X] + FIELD_SEPARATOR +
    outGeomagnetic[Y] + FIELD_SEPARATOR +
    outGeomagnetic[Z];

// Return data.
return returnValue;

当SensorManager.getRotationMatrix(…)返回false时,Eclipse调试器会显示if语句(if(!succeeded))突然跳转以返回returnValue;.抛出没有异常,LogCat – 即使在详细模式下 – 也不会收到异常消息.它甚至没有收到我在代码中输入的消息.我尝试了明显的清理和重启Eclipse方法,但没有帮助.我很困惑.

Eclipse调试器告诉我正在调用第二个return语句.但是,在show中添加其他print语句会显示第一个return语句实际上是到达的语句.也许我偶然发现了一个Eclipse bug?或者任何人都可以解释这种异常现象?

解决方法

你怎么确定它会跳到最后一次回归?你在if中有一个返回,这很可能是这个被调用的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读