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.

Responder a