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 ?:
<code>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 } </code>
A propósito, qual é a limitação de quão profundas podemos chamar as funções?