Dúvida Generics

8 respostas
AdrianoRibeiro

Boa tarde pessoal, podem me ajudar a entender o método abaixo:

Não sou forte em generics, como seria a chamada e implementação deste método?

Obrigado.

8 Respostas

A

Olá este é um método genérico estático , você poderá usá-lo de dentro de métodos estáticos como o main() ou de métodos tmb não estáticos :

a chamada pode ser do tipo :

List oi = new ArrayList<>();

oi.add(oi);

doIt(oi);

Mas não se esqueça de ajeitar o seu método ele parece estar incompleto . Se tiver dentro de uma interface faltou o ; se tiver dentro de uma classe concreta faltou as chaves { } e o return;

Um exemplo:
public static List<? super E> doIt(List nums) {

return nums;}

Eu coloquei o List do tipo String pois uma String é um CharSquence. poderia ser um StringBuffer, StringBuilder.

QQ coisa é só incomodar .

AdrianoRibeiro

Obrigado Alex. Mudando de assunto, ví que vc se certificou agora, 12/2012 correto? Eu farei minha prova agora no dia 14/01, o que achou do nível da prova? Ouço muita gente dizer q é nível testkiller, mas não consigo acreditar.

Estou fazendo simulados da Enthuware.

Obrigado pela atenção.

A

Muito tranquila . As questões são diretas e não são grandes , se tiveram questões com mais de 30 linhas ( no máximo) eram 1 ou 2. Eu estudei somente pelos livros da Kethy o dos conteúdos e dos exames mocados. Depois comprei o simulado da Whizlab. Nos 7 simulados eu fazia pontuação acima de 70% por isso resolvi ir logo fazer a prova .

AdrianoRibeiro

Alex, só mais uma pergunta… caí Serializable na prova de OCJP? Dei uma procurada rápida no fórum mas não encontrei.

Obrigado.

A

Não . não cai mais , pode procurar diretamento nos objetivos do exame no site da oracle. Tamb, não caem mais questões do tipo Drag And Drop.

AdrianoRibeiro

Show, obrigado.

sergiotaborda

AdrianoRibeiro:
Boa tarde pessoal, podem me ajudar a entender o método abaixo:

Não sou forte em generics, como seria a chamada e implementação deste método?

Obrigado.

A assinatura deste método não faz muito sentido pois não ha supers de CharSequence (exceptio object, claro)
Generics é um negocio complexo é preciso entender o que se pretende. Tem um video do joshua block (que não consegui achar aqui de repente) que explica o uso de extends e super pela sigla PECS : Producer extends, Consumer super
Ou seja, argumentos de entrada usam super e de saida usam extends. então um código mais lógico seria

Se bem que no caso, como não ha super de CharSequence, bastaria

AdrianoRibeiro

Pois é Sérgio, foi exatamente o que entendi…

Em ele diz quem o E vai representar… ou seja qualquer classe que extenda de CharSequence, ou seja, String serve.

Mas no List<? super E> não ficou muito claro, pra mim somente String atenderia. E como vc informou, bastaria um List.

Quanto ao resto acho que entendi.

Ah, esta questão tirei de um simulado.

Obrigado.

Criado 5 de janeiro de 2013
Ultima resposta 7 de jan. de 2013
Respostas 8
Participantes 3