코드를 게시해야하지만 코드가 상당히 복잡하고 도움이 될 것 같지 않습니다.메서드는 메서드 호출에서 false를 반환하지만 실제로 Android 응용 프로그램에서 호출 수신자에게 true를 반환합니다.
이 방법
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;
}
난 (checkNotOnBoard (startingX, startingY))의 경우에 디버깅 중단 점을 설정은, 상기 방법을 통하여 계단 placePlayer로 돌아 왔을 때 그 메소드의 마지막 줄 (false를 반환)으로 갔지만 반환 값은 true 였고 placePlayer는 반환 false 라인으로 이동했습니다. 내가 가지고있는 유일한 이론은 _board가 재설정된다는 것입니다.하지만 내가 알 수있는 한이 코드 섹션을 실행하는 다른 스레드는 없습니다. 그것은 안드로이드 응용 프로그램이며 HTC One M8 장치와 Android Studio를 사용하는 Nexus 7에서 디버깅 중입니다.
예, 때로는 디버깅이 버그입니다 .... –
이렇게 해보십시오 :'value = checkNotOnBoard (startingX, startingY); (값) false를 반환하면 ' –
시도해보십시오. checkNotOnBoard()가 false를 반환하더라도 value = true입니다. – Rhyeen