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