所以我知道我应该发布代码,但我的代码相当复杂,我认为这没有帮助。
这个方法:
public boolean placePlayer(Player player, int startingX, int startingY)
{
if(checkNotOnBoard(startingX, startingY))
return false;
player.setStartingPosition(startingX, startingY);
placeStartingTile(startingX, startingY);
return true;
}
调用 checkNotOnBoard(),即:
private boolean checkNotOnBoard(int positionX, int positionY)
{
if(_board.length < 1)
return true;
if(positionX < 0 || positionY < 0)
return true;
if((positionX < _board.length) && (positionY < _board[0].length))
return true;
return false;
}
我在if(checkNotOnBoard(startingX,startingY))处设置了调试断点,单步执行该方法,它走到了该方法的最后一行(返回false),当它返回到placePlayer时,返回是true ,并将 placePlayer 移至 return false 行。 我唯一的理论是 _board 正在被重置,但据我所知,没有其他线程正在运行这部分代码。这是一款 Android 应用,我正在使用 Android Studio 在 HTC One M8 设备和 Nexus 7 上进行调试。
最佳答案
执行返回时,调试器始终会命中方法的最后一行。它实际上并不意味着最后一条语句被执行。可能发生的情况是 java 引擎将返回地址从最后一行的堆栈中弹出。
关于android - 方法在方法调用中返回 false,但实际上在 Android 应用程序中向被调用者返回 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26857190/