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

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