GUJ
Notícias, artigos e o maior fórum brasileiro sobre Java
home
fórum
notícias
tópicos recentes
empregos
artigos
Bem-vindo ao GUJ.
Crie seu login
, ou digite-o para logar no site.
Usuário:
Senha:
Estudo de Generics!!!!
Índice dos Fóruns
»
Certificação Java
Autor
Mensagem
25/08/2006 16:05:34
Assunto:
Estudo de Generics!!!!
nicoweda
JavaChild
Membro desde: 04/04/2005 10:44:40
Mensagens: 122
Offline
Pessoal,
Estava estudando um pouco sobre generics e cai num uso de Generics como este:
public static <T> int binarySearch(List<? extends Comparable<? super T>> list, T key)
Obs:. Este metodo pode ser encontrado na API de collections.
http://java.sun.com/j2se/1.5.0/docs/api/java/util/Collections.html#binarySearch(java.util.List,%20T
)
Tenho que adimitir que levei um certo tempo pra entender oque estava acontecendo!!! Baseado nisto, me veio a pergunta...
"Qual é o nivel das questões de Generics?"
Alguem se lembra de ter visto algo como isto???
Abraços!
Bruno Nicoletti Siqueira
25/08/2006 16:35:35
Assunto:
Re:Estudo de Generics!!!!
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
Não caem coisas tão complicadas, mas você precisa saber o que é "? extends Bla" e "? super Bla" para responder uma ou duas questões.
25/08/2006 16:59:16
Assunto:
Re:Estudo de Generics!!!!
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
Se você entender este código, vai responder à questão de generics com facilidade.
import java.util.*; class TestWildcard { // Pode receber uma List<Number>, List<Integer>, List<Double> etc. public static double soma (List<? extends Number> lista) { double ret = 0.0; for (Number n : lista) { ret += n.doubleValue(); } return ret; } // Como você deve saber, Object <- java.util.Date <- java.sql.Date public static List<? super java.util.Date> getNumeros() { List<java.util.Date> ret = new ArrayList<java.util.Date>(); ret.add (new java.util.Date()); ret.add (new java.sql.Date (new java.util.Date().getTime())); return ret; } public static void main(String[] args) { // ? extends algumacoisa é mais fácil de entender. List<Double> doubles = new ArrayList<Double>(); doubles.add (2.0); doubles.add (3.0); System.out.println (soma (doubles)); List<Integer> integers = new ArrayList<Integer>(); integers.add (2); integers.add (3); System.out.println (soma (integers)); // ? super algumacoisa é mais difícil. List<? super java.sql.Date> numeros = getNumeros(); // Não consigo pôr algo que seja menos específico que java.sql.Date numeros.add (new java.sql.Date(new java.util.Date().getTime())); //numeros.add (new java.util.Date()); // erro de compilação // Não consigo retirar nada que seja mais específico que Object Object obj = numeros.get(0); System.out.println (numeros); } }
26/08/2006 20:30:19
Assunto:
Re:Estudo de Generics!!!!
nicoweda
JavaChild
Membro desde: 04/04/2005 10:44:40
Mensagens: 122
Offline
Valew ae pessoal !!!
Bruno Nicoletti Siqueira
Índice dos Fóruns
»
Certificação Java
Ir para:
Selecione um Fórum
Notícias
Assuntos gerais (Off-topic)
MundoJ - Artigos, Notícias e Debates
Artigos e Tutoriais
Java Básico
Java Avançado
Ferramentas, Frameworks e Utilitários
Desenvolvimento Web
Interface Gráfica
Google Android e Java Micro Edition (ME)
Certificação Java
Persistência: Hibernate, JPA, JDBC e outros
Java Enterprise Edition (Java EE)
Frameworks e Bibliotecas brasileiros
RIA - Flex, JavaFX e outros
Arquitetura de Sistemas
Metodologias de Desenvolvimento e Testes de Software
JavaScript
Ruby & Ruby on Rails
Outras Linguagens
Powered by
JForum 2.1.8
©
JForum Team