Pessoal, tenho o código abaixo, e quando tento executar a opção de Adicionar dados na Tabela De Espalhamento, obtenho a seguinte mensagem:
Exception in thread “main” java.lang.NullPointerException
at tabelaespalhamento.TabelaDeEspalhamento.addTabEspalha(TabelaDeEspalhamento.java:22)
at main.TestaTabelaEspalhamento.main(TestaTabelaEspalhamento.java:31)
LINHA 22 - (método addTabEspalha) : this.lista[funcaoEspalhamento(cPos)].addDestino(cDest);
LINHA 31 - (TestaTabelaEspalhamento) : tabela.addTabEspalha(ori, des);
Agora o código completo ( estou omitindo packages e métodos que não importam à dúvida que coloco aqui):
public class No {
public char destino;
public No prox;
public No(char c){
this.destino = c;
prox = null;
}
}
// LISTALIGADA INSTANCIA NO
Public class ListaLigada {
public No inicio;
public ListaLigada(No inicio) {
this.inicio = null;
}
public void addInicio(char c) {
No novo = new No(c);
novo.prox = inicio;
inicio = novo;
}
}
//TABELA DE ESPALHAMENTO
public class TabelaDeEspalhamento {
public ListaLigada[] lista;
public TabelaDeEspalhamento() {
this.lista = new ListaLigada[52];
}
public int funcaoEspalhamento(char cH) {
if (cH < 91) {
return cH - 65;
} else {
return cH - 71;
}
}
public void addTabEspalha(char cPos, char cDest) {
this.lista[funcaoEspalhamento(cPos)].addDestino(cDest);
}
}
// MAIN
public class TestaTabelaEspalhamento {
public static void main(String args[]) {
TabelaDeEspalhamento tabela = new TabelaDeEspalhamento();
int opt = -1;
while (opt != 99) {
opt = Integer.parseInt(
JOptionPane.showInputDialog("Opção desejada: \n " + "\t\t 1 - Adicionar Origem - Destino.\n"
+ "\t 99 -Encerrar. "));
String origem = " ";
String destino = " ";
char ori;
char des;
switch (opt) {
case 1:
origem = JOptionPane.showInputDialog("Origem? ", "Digite Origem :");
destino = JOptionPane.showInputDialog("Destino? ", "Digite destino :");
ori = origem.charAt(0);
des = destino.charAt(0);
tabela.addTabEspalha(ori, des);
break;
case 99:
System.out.println("Saindo do programa");
break;
default:
JOptionPane.showMessageDialog(null, "Opção inválida");
break;
}
}
}
}