Eclipse 调试器跳转到错误的返回语句

2024-01-06

我遇到了一个非常奇怪的情况。我正在 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;

When SensorManager.getRotationMatrix(...)回报false,Eclipse 调试器显示 if 语句if (!succeeded)突然跳到return returnValue;。不会引发任何异常,并且 LogCat(即使在详细模式下)也不会收到异常消息。它甚至没有收到我在代码中输入的消息。我尝试了明显的清理并重新启动 Eclipse 方法,但没有帮助。我很困惑。

Eclipse 调试器告诉我第二个return正在调用声明。然而,添加额外的打印语句表明第一个return声明实际上是正在达成的声明。也许我偶然发现了 Eclipse 错误?或者谁能​​解释一下这个异常现象?


好像succeeded是假的。调试会让方法看上去像是跳到了底部return当你做任何事时return。前面放一个日志

  return NO_DATA_COULD_BE_READ;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Eclipse 调试器跳转到错误的返回语句 的相关文章

随机推荐