Acontece nas melhores familias ... :)

Vivendo e aprendendo...

Alias, sempre ressalto a importancia de pesssoas igual ao Flavio, Buss e
companhia, q ja fizeram comp2 mas continuam na lista ajudando.

[]s

2008/9/22 Flavio Costa <[EMAIL PROTECTED]>

> Professor,
>
> Falha minha!
> Quando conheci o Java a linguagem já se encontrava na versão 1.5 e acabei
> tendo muito pouco contato com "a falta de autoboxing" e "a falta de
> generics", apenas mexendo em código legado de um software Opensource do qual
> eu faço parte da equipe de desenvolvedores, grande parte dessas "mexidas"
> era justamente para portar o código para as facilidades introduizadas pela
> versão 1.5.
>
> Obrigado por me corrigir =)
>
> 2008/9/22 Miguel Jonathan <[EMAIL PROTECTED]>
>
> Flavio,
>>
>> Nenhuma classe de coleção aceita valores simples, portanto o seu exemplo:
>>   list.add(10);
>> não poderia funcionar.
>>
>> Coleções armazenam apenas referências para objetos.
>>
>> Para isso foram criadas as classes "wrappers", como Integer, Double, etc
>> Para criar uma lista de inteiros, você precisa fazer:
>> list.add(new Integer(10));
>>
>> Mas aí tem que ter o trabalho chato de empacotar o int em um Integer e
>> depois desempacotar o int com:
>> int x = list.get(0).intValue();
>>
>> Recentemente, a partir da versão 5.0, foi criado o mecanismo de
>> "autoboxing", que permite empacotar e desempacotar automaticamente esses
>> valores simples quando queremos usá-los em coleções.
>>
>> Nesse caso, agora podemos fazer (antes nao):
>>
>> ArrayList<Integer>  list = new ArrayList<Integer>();
>> list.add(10);    // o autoboxing cria automaticamente um Integer com o 10
>> e coloca na lista.
>> int x = list.get(0);    // o autoboxing obtem automaticamente o int dentro
>> do Integer.
>>
>> Mais detalhes sobre autoboxing em
>> http://java.sun.com/j2se/1.5.0/docs/guide/language/autoboxing.html
>>
>> (Mas eu não cheguei a dar isso em sala)
>>
>> Jonathan
>>
>>
>> 2008/9/22 Flavio Costa <[EMAIL PROTECTED]>
>>
>>> Antes da existência desta ferramenta era possível fazer o seguinte:
>>>
>>> ArrayList list = new ArrayList();
>>>> list.add(10);
>>>> list.add("teste");
>>>> list.add(new Object());
>>>
>>> String s = (String) list.get(1); *// precisei fazer um cast e ainda
>>>> corro risco de indice 1 não conter realmente uma String*
>>>>
>>>
>>> Para acessar os elementos desta lista, ou você tinha *disciplina* e só
>>> usava a lista para guardar um tipo de dados e ainda sim usar toneladas de
>>> *casts* ou você usava o operador *instanceof* para *tentar* adivinhar
>>> qual tipo você está manipulando. Vale frizar que isto só dará *erro em
>>> tempo de execução* (ClassCastExceptions) caso você faça casts incorretos
>>> pois o compilador não pode eliminar tais tipo de erro pois não pode prever o
>>> que será adicionado e qual será o tipo do que está sendo adicionado
>>>
>>> Com generics você *"avisa"* para o compilador que tipos de dados
>>> esperar, com isso podemos verificar os parâmetros passados para os método.
>>> Meio dificil de explicar com palavras, vamos tentar com um exemplo.
>>>
>>> ArrayList<String> list = new ArrayList<String>(); *// a partir deste
>>>> momento o compilador sabe que esta lista só possuirá strings*
>>>> list.add("teste") *// sem problemas, pois o parâmetro é realmente uma
>>>> string.*
>>>> list.add(10) *// erro em tempo de compilação, pois o parâmtro não é uma
>>>> string*
>>>
>>>
>>>
>>> Sobre esta dúvida: "Uso correto de variáveis do tipo de uma interface ou
>>> do tipo de uma classe abst"
>>> Explique melhor pois não consegui entender qual realmente é a sua
>>> dificuldade.
>>>
>>> []'s
>>>
>>>
>>> 2008/9/22 Gustavo Cury <[EMAIL PROTECTED]>
>>>
>>>>  Bem, estou com um pouco de dúvida nos seguintes assuntos sobre o
>>>> teste, teria como vocês darem uma esclarecida em:
>>>>
>>>> - Uso de Generics com ArrayList
>>>>
>>>> - Uso correto de variáveis do tipo de uma interface ou do tipo de uma
>>>> classe abstrata
>>>>
>>>> Obrigado desde já.
>>>> Gustavo Cury
>>>>
>>>> ------------------------------
>>>> Receba GRÁTIS as mensagens do Messenger no seu celular quando você
>>>> estiver offline. Conheça o MSN Mobile! Crie já o 
>>>> seu!<http://mobile.live.com/signup/signup2.aspx?lc=pt-br>
>>>>
>>>>
>>>
>>>
>>> --
>>> Flávio Coutinho da Costa
>>>
>>>
>>>
>>
>>
>>
>
>
> --
> Flávio Coutinho da Costa
>
> >
>


-- 
Zaedy Dantas Sayão
Graduando em Ciência da Computação DCC/UFRJ
http://www.manufato.com.br/
MSN: [EMAIL PROTECTED]

--~--~---------~--~----~------------~-------~--~----~
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