:-)

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.

Responder a