"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]. For more options, visit this group at http://groups.google.com/group/comp2-geral?hl=en.
