Bom, um null pointer é um dos erros mais simples de se resolver, pis é facil detectar o ponto.
Olhe na exception em qual linha está dando o nullpointer, ou rode sua aplicação em modo debug e coloque um breaking point para vc ir acompanhando.
Bons estudos.
L
lolitosa
sim, eu fiz o debug…
Mas não sei se é a cabeça que tá ruim mas não consigo achar o problema.
No caso eu declarei o tabuleiro, e declarei os vetores, mas parece que o tabuleiro em si não existe, a instancia, e eu nao consigo achar um meio de criar, eu usei o método do construtor mas mesmo assim, parece que o tabuleiro em si não foi criado…
JARDEL_RODRIGUES
atenção, quando criar tópico crie de acordo com erro que está acontecendo no seu codigo.
Z
zz1
lolitosa:
sim, eu fiz o debug…
Mas não sei se é a cabeça que tá ruim mas não consigo achar o problema.
No caso eu declarei o tabuleiro, e declarei os vetores, mas parece que o tabuleiro em si não existe, a instancia, e eu nao consigo achar um meio de criar, eu usei o método do construtor mas mesmo assim, parece que o tabuleiro em si não foi criado…
Sem codigo de erro fica complicado te ajudar,
Cola ai o erro e tua classe na integra usando as tags code ai de cima.
L
lolitosa
Exception in thread "main" java.lang.NullPointerException
at jogodavelha2.tabuleiro.print(tabuleiro.java:82)
at jogodavelha2.Jogodavelha2.main(Jogodavelha2.java:29)
Java Result: 1
publicclasstabuleiro{privateintlinha;privateintcoluna;privatePeca[]linha0;privatePeca[]linha1;privatePeca[]linha2;publictabuleiro(intl,intc){linha=l;coluna=c;linha0=newPeca[c];linha1=newPeca[c];linha2=newPeca[c];}publicbooleansetPeca(intl,intc,Pecap){booleanretorno=false;if(l==1){linha0[c-1]=p;retorno=true;}if(l==2){linha1[c-1]=p;retorno=true;}if(l==3){linha2[c-1]=p;retorno=true;}returnretorno;}publicPecagetPeca(intl,intc){Pecapeca=null;if(l==1){peca=linha0[c-1];}if(l==2){peca=linha1[c-1];}if(l==3){peca=linha2[c-1];}returnpeca;}publicStringgetError(){Stringerrormessage="";errormessage.equals("Erro. O tabuleiro não deve ter mais de 9 espaços.");returnerrormessage;}publicStringprint(){Stringtemp="";intc=0;this.coluna=c;for(c=1;c<=3;c++){if(linha0[c-1].equals("")){temp=temp+c;}else{temp=temp+linha0[c-1];}if((c==1)||(c==2)){temp=temp+"|";}else{temp=temp+"\n";}}returntemp;}
Hebert_Coelho
Não tenha medo de ler uma mensagem de erro.
A sua mensagem de erro diz:
Exception in thread “main” java.lang.NullPointerException
at jogodavelha2.tabuleiro.print(tabuleiro.java:82) <==================
Note que ele aponta onde está o erro e em qual arquivo.
Abra seu arquivo tabuleiro na linha 82 (que não é a mesma que você colou aqui) e veja o que está null.
L
lolitosa
Ah, está dando .equals() em tipos incompatíveis...
Como posso resolver isso?
no caso, eu tenho uma classe peça que guarda uma string dentro.
pra imprimir o tabuleiro, fiz a função usando equals.
ps: o meu professor passou a base dessa parte do código na sala de aula...
publicStringprint(){
Stringtemp="";intc=1;this.coluna=c;for(c=1; c <= 3; c++) {if(linha0[c-1].equals("")){
temp=temp+c;}
R
rof20004
Nao seria porque voce quer comparar um objeto PECA com uma STRING, que sao 2 tipos diferentes ?
L
lolitosa
sim, mas dentro da peça tem uma string…
no caso, linha0[0] é uma peça, mas corresponde a “X”, por exemplo…
Eu preciso da comparação para desenhar o tabuleiro, como posso resolver isso?
R
rof20004
Mostre sua classe Peca.
L
lolitosa
opa opa opa
descobri o erro!
colei aqui e veio uma luz na cabeça ahahaa
era só colocar linha0[c-1].getTipo()
engraçado que continua dando erro na mesma linha naquela parte do null pointer exception, mas o erro de comparação de tipos sumiu
R
rof20004
Estranho, no construtor da sua classe Peca voce passa como parametro uma String, mas na inicializacao da linha0 voce da um new Peca(c), mas c é um tipo int, 2 tipos diferentes certo ?
[code]
public tabuleiro(int l, int c){
linha = l;
coluna = c;
linha0 = new Peca[c];
linha1 = new Peca[c];
linha2 = new Peca[c];
}
[quote]
L
lolitosa
sim, pois no caso, o tabuleiro é um vetor de peças.
Não estou mexendo com matriz então tenho 3 vetores (linhas) então fica algo como linha0[c] e no caso c é o numero de colunas.