tão fácil e eu não vi isso ^^ vlw peter
+1 ponto pra vc Em 5 de julho de 2010 19:50, Peter P. Lupo <[email protected]> escreveu: > "Como você faz as duas a partir da mesma referência, só me resta supor que > ela está nula (...)" > > Ela deve deixar de ser nula, ou seja, referenciar uma instância. Neste > caso, um Map, certo? > > Faltou uma atribuição apenas. ;-) > > Abraço > > Peter P. Lupo > http://craftnicely.blogspot.com - http://sites.google.com/site/pplupo > MPS.BR Authorized Implementation Practitioner - Certified ScrumMaster > Sun Certified Java Associate - Java Black Belt > +55 (021) 81742487 > > > 2010/7/5 Romulo Freires <[email protected]> > >> Sim Peter, mas como eu posso corrigir? já estou um tempinho nisso >> >> obrigado. >> >> Em 5 de julho de 2010 19:27, Peter P. Lupo <[email protected]> escreveu: >> >> Vamos analisar com calma este staktrace: >>> >>> A main é executada e na linha 21 ela vai para a pilha pois chamou outro >>> método, o criaAluno, que vai ser executado. >>> >>> Na linha 23 ele lançou uma NPE. >>> >>> Uma NPE só pode acontecer por dois motivos. >>> >>> 1. foi lançada com throws, como qualquer exceção (nunca vi isso com uma >>> NPE). >>> 2. foi lançada pq foi acessada uma referência que não apontava para >>> nenhum objeto (é pra isso que a NPE serve, é isto que ela significa). >>> >>> Então, na linha 23, vc acessa alguma referência (chamando um método ou >>> acessando um atributo) que não foi inicializada, não referencia ninguém, >>> APONTA para NULL (NULL POINTER exception). >>> >>> Sua linha 23 é esta: if(alunos.get(dre)== null) alunos.put(dre, new >>> Aluno(nome, dre)); >>> >>> formatando: >>> >>> if(alunos.get(dre)== null) { >>> alunos.put(dre, new Aluno(nome, dre)); >>> } >>> >>> desconstruíndo, vc faz 2 chamadas de métodos e uma instanciação. Dentro >>> do construtor de Aluno foi tudo bem, sem erros, ou ele estaria no >>> stacktrace. logo, foi em uma das chamadas de método. >>> Como você faz as duas a partir da mesma referência, só me resta supor que >>> ela está nula e a que falhou é a primeira (da avaliação do if). >>> Se você formatar como eu fiz verá que a exceção continua na linha 23. >>> >>> Formatar desta forma, além de seguir a convenção de codificação Java >>> auxilia nestes casos (se dentro do if fosse um método de outra referência, >>> você saberia imediatamente qual estava nula) e ajuda a reconhecer >>> visualmente os blocos de desvio (é por isto que a convenção recomenda esta >>> forma). >>> >>> Abraço >>> >>> Peter P. Lupo >>> http://craftnicely.blogspot.com - http://sites.google.com/site/pplupo >>> MPS.BR Authorized Implementation Practitioner - Certified ScrumMaster >>> Sun Certified Java Associate - Java Black Belt >>> +55 (021) 81742487 >>> >>> >>> 2010/7/5 Romulo Freires <[email protected]> >>> >>>> Tenho um pequeno no meu programa. >>>> >>>> Exception in thread "main" java.lang.NullPointerException >>>> at Controle.ControladorAluno.criaAluno(ControladorAluno.java:23) >>>> at vista.Main.main(Main.java:21) >>>> >>>> >>>> public void criaAluno(String nome,String dre)throws >>>> AlunoExistenteException{ >>>> if(alunos.get(dre)== null) alunos.put(dre, new Aluno(nome, >>>> dre)); //linha 23 >>>> >>>> else throw new AlunoExistenteException("Aluno já existente com >>>> DRE", dre); >>>> } >>>> >>>> >>>> >>>> Essa parte de baixo é referente a linha 21 de outra parte do código. >>>> >>>> try{ >>>> ca.criaAluno("joão", "1111"); // linha 21 >>>> System.out.print("Aluno Criado Ok"); >>>> } >>>> >>>> catch (AlunoExistenteException e){ >>>> System.out.print(e); >>>> >>>> >>>> Agradeço qualquer ajuda para corrigir o erro. >>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "Comp 2 - Geral" group. >>>> To post to this group, send email to [email protected]. >>>> To unsubscribe from this group, send email to >>>> [email protected]<comp2-geral%[email protected]> >>>> . >>>> For more options, visit this group at >>>> http://groups.google.com/group/comp2-geral?hl=en. >>>> >>> >>> -- >>> You received this message because you are subscribed to the Google Groups >>> "Comp 2 - Geral" group. >>> To post to this group, send email to [email protected]. >>> To unsubscribe from this group, send email to >>> [email protected]<comp2-geral%[email protected]> >>> . >>> For more options, visit this group at >>> http://groups.google.com/group/comp2-geral?hl=en. >>> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Comp 2 - Geral" group. >> To post to this group, send email to [email protected]. >> To unsubscribe from this group, send email to >> [email protected]<comp2-geral%[email protected]> >> . >> For more options, visit this group at >> http://groups.google.com/group/comp2-geral?hl=en. >> > > -- > You received this message because you are subscribed to the Google Groups > "Comp 2 - Geral" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]<comp2-geral%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/comp2-geral?hl=en. > -- You received this message because you are subscribed to the Google Groups "Comp 2 - Geral" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/comp2-geral?hl=en.
