Genéricos - Por que o código não Compila?  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
VantuilJose
JavaChild
[Avatar]

Membro desde: 15/09/2008 11:47:53
Mensagens: 101
Offline



Por que o código listaRef.add(e) não compila? Ele naum deveria aceita EntidadeSimples e qualque subtipo?

Vantuil Oliveira
Tecnólogo em Análise e Desenvolvimento de Sistemas - IFMG Bambuí
Mestrando em Ciência da Computação - UFOP
-
"I am the maniac serial killer that knows where you live who will maintain your code!"
[MSN]
thiago.correa
GUJ Master
[Avatar]

Membro desde: 26/03/2006 18:54:30
Mensagens: 1861
Offline

Qual é o erro que está dando?!

---
"Se não puder ajudar, atrapalhe, afinal de contas o importante é participar!"
Thiago
[MSN]
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20578
Localização: Curitiba/PR
Offline

Declare apenas como:


Wildcards geralmente só serão usados para aceitar parâmetros de métodos. Muito raramente como propriedades ou valores de retorno.

This message was edited 1 time. Last update was at 15/01/2010 10:54:16


@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
VantuilJose
JavaChild
[Avatar]

Membro desde: 15/09/2008 11:47:53
Mensagens: 101
Offline

Esse aqui:




Vantuil Oliveira
Tecnólogo em Análise e Desenvolvimento de Sistemas - IFMG Bambuí
Mestrando em Ciência da Computação - UFOP
-
"I am the maniac serial killer that knows where you live who will maintain your code!"
[MSN]
vdb
JavaEvangelist

Membro desde: 28/09/2006 11:38:29
Mensagens: 330
Localização: Curitiba / PR
Offline

O problema esta aqui


SCJP 5
SCWCD 5
VantuilJose
JavaChild
[Avatar]

Membro desde: 15/09/2008 11:47:53
Mensagens: 101
Offline

ViniGodoy, utilizando um List<EntidadeSimples> eu poderei passar no meu construtor listas de qualquer subtipo de EntidadeSimples?

Vantuil Oliveira
Tecnólogo em Análise e Desenvolvimento de Sistemas - IFMG Bambuí
Mestrando em Ciência da Computação - UFOP
-
"I am the maniac serial killer that knows where you live who will maintain your code!"
[MSN]
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20578
Localização: Curitiba/PR
Offline

Você precisa estudar mais sobre wildcards e quando usa-los. Esse, definitivamente, não é o caso.

@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
VantuilJose
JavaChild
[Avatar]

Membro desde: 15/09/2008 11:47:53
Mensagens: 101
Offline

vdb, eu realmente estou tentando inserir em uma lista vazia, mas isso geraria um erro de execução, e o que eu tenho é um erro de compilação, não resolvi eu fazer isso aqui:

Vantuil Oliveira
Tecnólogo em Análise e Desenvolvimento de Sistemas - IFMG Bambuí
Mestrando em Ciência da Computação - UFOP
-
"I am the maniac serial killer that knows where you live who will maintain your code!"
[MSN]
VantuilJose
JavaChild
[Avatar]

Membro desde: 15/09/2008 11:47:53
Mensagens: 101
Offline

Pois é testei aqui!!!
Vou deixar de ser preguiçoso e ler o tutorial da sun sobre generics!!!
http://java.sun.com/j2se/1.5/pdf/generics-tutorial.pdf

Existe algum bom material que você possa me indicar?

Vantuil Oliveira
Tecnólogo em Análise e Desenvolvimento de Sistemas - IFMG Bambuí
Mestrando em Ciência da Computação - UFOP
-
"I am the maniac serial killer that knows where you live who will maintain your code!"
[MSN]
Felagund
GUJ Master
[Avatar]

Membro desde: 26/07/2006 11:51:36
Mensagens: 1732
Localização: Santa e Bela Catarina
Offline

Qual vc passa como parametro uma lista de subtipos de EntidadeSimples, Vc sempre tera objetos do tipo EntidadeSimples.

Um retorno de EntidadeSimples é valido

att
Rafael Felix

Rolling With Code
Twitter
[WWW]
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20578
Localização: Curitiba/PR
Offline

Faz assim:


Simples assim, sem nenhum "?".

Essa lista aceita que sejam inseridas filhas de EntidadeSimples em seu interior.


Os wildcards vc usa em parâmetros, quando quer dizer:

"Preciso de um método que aceite um List de EntidadeSimples ou um List de seus Filhos".

Ou seja, se EntidadeSimples tiver como filhos PessoaFisica e PessoaJuridica, vc usa o WildCards para dizer que quer um
List<EntidadeSimples> ou um List<PessoaFisica> ou um List<PessoaJuridica>.

No que o WildCard indica que o tipo da lista muda, não do seu conteúdo. Um List<EntidadeSimples> vai admitir os três tipos de dado em seu interior.


O problema é que um List<PessoaFisica> não é implicitamente convertível para um List<EntidadeSimples>. Isso pq isso permitira inserir uma pessoa Jurídica na nova lista. Por isso, o método add fica barrado quando existem wildcards. Você só pode usar os métodos que leem da lista, pois, independente do tipo da lista, todos os objetos serão convertíveis para EntidadeSimples.


Um exemplo de método onde o Wildcard se encaixaria seria o de relatório:


Isso permitiria passar para a função um List<PessoaFisica>.

This message was edited 2 times. Last update was at 15/01/2010 11:25:51


@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
VantuilJose
JavaChild
[Avatar]

Membro desde: 15/09/2008 11:47:53
Mensagens: 101
Offline

Valeu ViniGodoy!!!
Agora deu pra entender direitinho

Deu pra entender que, tipo, se eu passo uma lista de PessoaJurídcia e depois tento adicionar uma entidadeSimples nela, quando chamar algum método de EntidadeSimples em PessoaJuridica, é claro que vai ter um erro!!!

A solução era muito mais simples do que imaginei!!! Mas ainda deu pra aprender um pouco mais!!!!

Obrigado!!!!!

Vantuil Oliveira
Tecnólogo em Análise e Desenvolvimento de Sistemas - IFMG Bambuí
Mestrando em Ciência da Computação - UFOP
-
"I am the maniac serial killer that knows where you live who will maintain your code!"
[MSN]
welitonjose
JavaBaby
[Avatar]

Membro desde: 05/01/2010 09:42:52
Mensagens: 94
Localização: Cuiabá - MT
Offline

pq e um lixo

ME DESLIGANDO POR ALGUM TEMPO!!!!

Weliton Jose
"good things come in small jar files",
[WWW] [MSN]
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team