Cómo evitar StackOverflowError para una función recursiva
Estoy escribiendo una función que se llamará hasta 5000 veces. Por supuesto, me sale unStackOverflowError
. ¿Hay alguna manera de que pueda reescribir este código de una manera bastante simple ?:
<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>
Por cierto, ¿cuál es la limitación de cuán profundas podemos llamar a las funciones?