所以我知道我应该发布代码,但我的代码相当复杂,而且我认为它不会提供帮助。
此方法:
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移动到返回false行。 我唯一的理论是_board正在重置,但据我所知,没有其他线程正在运行代码的这一部分。它是一个Android应用程序,我正在使用Android Studio在HTC One M8设备和Nexus 7上进行调试。
答案 0 :(得分:4)
执行返回时,调试器始终命中方法的最后一行。它实际上并不意味着最后一个语句被执行。可能发生的事情是java引擎在最后一行弹出堆栈的返回地址。