:-) 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]> > 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]<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.
