| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/04/2008 12:40:22
|
Puppets
Virtual Machine Man
![[Avatar]](/images/avatar/6c7a107981f9c2a0ed55efce297bd1e2.png)
Membro desde: 12/12/2006 14:14:55
Mensagens: 508
Localização: Porto Alegre
Offline
|
O que significa essa palavra acima do método
@Deprecated ??
Em que caso que eu utilizo generics que devo utilizar ? olhem o exemplo abaixo:
Agora é referente à Conversão e Casting, reparem nestas classes que eu criei:
Eu criei um objecto do tipo CarroEspecifico e uma variável de referência do tipo Carro
Carro obj = new CarroEspecifico();
Desta forma não há como ter acesso aos atributos do tipo Carro porque o objeto aponta para a classe CarroEspecifico ?
Como eu crio um objeto que de tal forma eu acesso o método das duas classes ?
This message was edited 1 time. Last update was at 16/04/2008 13:06:07
|
Nunca desista antes de conseguir. |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/04/2008 12:43:20
|
Filipe Portes
Thread.start()
![[Avatar]](/images/avatar/27a084143054dbde46bb43f0ccae1a55.jpg)
Membro desde: 06/09/2007 08:27:41
Mensagens: 40
Localização: Goiânia - GO
Offline
|
o Deprecated ira mostrar um waring sempre que este método for chamado
esse genercs vou ficar devendo....
|
filipePortes.setLocation("Goiânia"); |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/04/2008 13:00:02
|
GustavoLaguna
JavaTeenager
![[Avatar]](/images/avatar/099fe6b0b444c23836c4a5d07346082b.jpg)
Membro desde: 06/04/2006 15:58:47
Mensagens: 162
Localização: Mirassol/SP
Offline
|
Deprecated significa que é um método "depreciado" (seria essa a tradução?), ou seja, que não é bem visto na hora de se utilizar, normalmente ele indicará outra forma mais atualizada de se fazer.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/04/2008 13:07:10
|
Puppets
Virtual Machine Man
![[Avatar]](/images/avatar/6c7a107981f9c2a0ed55efce297bd1e2.png)
Membro desde: 12/12/2006 14:14:55
Mensagens: 508
Localização: Porto Alegre
Offline
|
Obrigado galera alguém sabe referente ao casting ?
|
Nunca desista antes de conseguir. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/04/2008 13:16:33
|
GustavoLaguna
JavaTeenager
![[Avatar]](/images/avatar/099fe6b0b444c23836c4a5d07346082b.jpg)
Membro desde: 06/04/2006 15:58:47
Mensagens: 162
Localização: Mirassol/SP
Offline
|
Acabei de ver em outro tópico, Deprecated = Desuso.
Quanto ao Casting, quando voce cria a classe CarroEspecífico voce sobrescreveu os métodos herdados da classe Carro.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/04/2008 13:16:52
|
nicoweda
JavaChild
![[Avatar]](/images/avatar/b98a3773ecf715751d3cf0fb6dcba424.jpg)
Membro desde: 04/04/2005 10:44:40
Mensagens: 122
Offline
|
Interrogação é o coringa do generics, significa qualquer tipo!
No caso essa interrogação está vindo seguida por extends E, que significa que o método recebe como argumento uma Collection de qualquer tipo que extenda ou implemente E.
Por exemplo, se vc declara Collection<Animal> vc pode apenas utilizar Animal mas não pode passar uma referencia de alguma coisa que extenda Animal.
Espero que tenha ajudado!
|
Bruno Nicoletti Siqueira |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/04/2008 13:32:40
|
victorwss
JWizard
![[Avatar]](/images/avatar/4ab232445f9b21b65dfdf6ea5f27f704.png)
Membro desde: 18/12/2007 14:46:00
Mensagens: 2409
Localização: São Paulo - SP
Offline
|
@Deprecated = Perigo: Quem ousar utilizar este método será condenado a morte de forma dolorosa, violenta e cruel.
O cast é aquele ((Carro) obj) do seu código, que no caso é completamente desnecessário porque obj já é do tipo Carro.
Enfim o cast serve para você dizer para o compilador tratar aquilo como algo de um tipo diferente do que o tipo que ele vê.
No generics o Collection<? extends E> significa "uma Collection de E ou de alguma subclasse de E". Assim como Collection<? super E> significa "uma Collection de E, de alguma superclasse de E ou de alguma interface implementada por E". Collection<E> quer dizer "uma Collection de E (exatamente E, não é nem de uma subclasse de E e nem de uma superclasse de E, mas exatamente de E)".
Por fim Collection<?> significa "qualquer Collection".
|
Victor Williams Stafusa da Silva
Bacharel em Ciência da Computação - UFMT // Especialista em Desenvolvimento Java - CEFET/MT // Doutorando em Ciência da Computação - IME-USP
SCJP 6.0 - 19/12/2007 - PASS - 88% // SCWCD 5 - 17/05/2008 - PASS - 79% // SCJA - 09/09/2008 - PASS - 96% // SCSNI - 30/06/2009 - PASS - 68% // SCBCD 5 - 31/05/2010 - PASS - 95%
Próximos: SCJD (encalhado com o projeto), SCEA parte I (estudando). Algum dia desses: SCMAD, OCA, SCEA e SCDJWS.
Computação: uma ciência holística e esotérica!
E então veio Deus a terra e disse aos homens: Não dividireis por zero.
XML is a giant step in no direction at all. (Erik Naggum)
Arquitetura de sistemas: Eu prefiro ser essa metamorfose ambulante do que ter aquela velha opinião formada sobre tudo.
Diga não as drogas: Não use java.util.Vector.
Cuidado: Este usuário pode ter temperamento agressivo.
Always code as if the person who will maintain your code is a maniac serial killer that knows where you live.
I am the maniac serial killer that knows where you live who will maintain your code.
É impossível falar de CMMI (Capability Maturity Model Integration) sem saber o que é CIMM (Capability Im-Maturity Model).
Se você escreve "concerteza", "concerteza" você andou matando aulas de português. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/04/2008 13:35:12
|
Puppets
Virtual Machine Man
![[Avatar]](/images/avatar/6c7a107981f9c2a0ed55efce297bd1e2.png)
Membro desde: 12/12/2006 14:14:55
Mensagens: 508
Localização: Porto Alegre
Offline
|
GustavoLaguna , ainda estou com algumas dúvidas referente à casting.
No meu exemplo anterior até faz sentido pois eu deu um override nos métodos da
minha classe mãe, mais neste exemplo que vou mostra agora eu não do e acontece um problema veja o código abaixo:
|
Nunca desista antes de conseguir. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/04/2008 13:37:38
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
É pra dar um ClassCastException mesmo, oras! Você criou um "CarroEspecifico" mas quer chamar um método que ele não tem (rotacaoEspecifica).
|
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/04/2008 13:40:17
|
nicoweda
JavaChild
![[Avatar]](/images/avatar/b98a3773ecf715751d3cf0fb6dcba424.jpg)
Membro desde: 04/04/2005 10:44:40
Mensagens: 122
Offline
|
Você não precisa dar um Cast pra ter certeza de que o método sobreescrito vai ser chamado.
Ele SEMPRE vai ser chamado, vc tem que pensar em referência e instância como duas coisas separadas.
A instância é do tipo CarroMaisEspecifico mas a referência que você está utilizando é do tipo Carro.
Por este motivo o compilador vai apenas "enchergar" os métodos que foram declarados na classe Carro, porém na hora de executa-los ele vai pegar a implementação do seu objeto, ou seja na classe CarroMaisEspecifico.
E você está tendo que fazer um casting pra CarroMaisEspecifico porque a classe Carro não possui tal método. Pra resolver sem casting, basta trocar para
Não sei se me fiz claro...
|
Bruno Nicoletti Siqueira |
|
|
 |
|
|