Jak uniknąć StackOverflowError dla funkcji rekurencyjnej
Piszę funkcję, która zadzwoni do około 5000 razy. Oczywiście, dostajęStackOverflowError
. Czy jest jakiś sposób, aby przepisać ten kod w dość prosty sposób ?:
<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>
Przy okazji, jakie jest ograniczenie tego, jak głęboko możemy nazywać te funkcje?