Estou fazendo o dever de casa para uma aula de Estruturas de Dados e criando uma árvore 2-3 no NetBeans, mas há uma falha que continua acontecendo, onde um método é chamado duas vezes, mas na segunda vez, ele está sendo chamado por uma instrução que não existe.
Este é o método que está sendo chamado pela classe principal. main.Tree23.insert()
É a linha 33 da minha classe Tree23.
Aqui está a pilha de chamadas listando corretamente as chamadas de método até agora:
Mas então, sem nenhuma razão aparente, o método é chamado novamente e a linha que ele chama nem está lá. Há claramente um espaço em branco na linha 51.
Quando comento o método inteiro, obviamente, ele não executa e recebo um erro de compilação. E quando o movo para outro lugar no código, ele ainda executa a linha 51 (apesar de haver uma instrução completamente diferente lá). Não tenho ideia de como solucionar isso. O que pode estar causando essa falha?
Não usei muito o NetBeans antes, mas pesquisei um pouco para encontrar uma solução adequada. Acho que técnicas de depuração de bom senso devem funcionar, por exemplo:
- Tente copiar todo o seu código para um novo arquivo e executá-lo novamente, pois alguns arquivos estão simplesmente corrompidos. Além disso, você pode executar o código em um editor diferente; dessa forma, você verá se o problema ocorre no próprio NetBeans ou se é realmente um problema com o seu código.
- Como o comentário em sua postagem disse, você também deve tentar limpar e reconstruir seu projeto. Eu nunca usei esse recurso antes, mas como sugere esta postagem do Stack Overflow: " Limpar e Construir e Executar" no Netbeans 8.0.2 resulta na execução de código antigo . Tente ir em "COMPRAR" e depois em "LIMPAR E CONSTRUIR PROJETO" (ou use o comando "Shift + F11"). Se não for assim que aparece na configuração da sua plataforma, tente o método sugerido por @markspace, e eu cito: <<Selecione "Limpar" no menu superior e depois "Construir" o projeto inteiro novamente.>>.
- Outra coisa que pode causar o problema, embora eu duvide que essa seja a raiz do bug, é verificar se o depurador não está causando rastreamentos de pilha enganosos, verificando suas configurações.
CRÉDITOS A @markspace pela segunda sugestão que ofereci na minha resposta.