Como evitar StackOverflowError para uma função recursiva
Eu estou escrevendo uma função que vai se chamar até cerca de 5000 vezes. Claro, eu recebo umStackOverflowError
. Existe alguma maneira que eu possa reescrever este código de uma forma bastante simples ?:
void checkBlocks(Block b, int amm) {
//Stuff that might issue a return call
Block blockDown = (Block) b.getRelative(BlockFace.DOWN);
if (condition)
checkBlocks(blockDown, amm);
Block blockUp = (Block) b.getRelative(BlockFace.UP);
if (condition)
checkBlocks(blockUp, amm);
//Same code 4 more times for each side
}
A propósito, qual é a limitação de quão profundas podemos chamar as funções?