Dúvidas  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
Puppets
Virtual Machine Man
[Avatar]

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.
Filipe Portes
Thread.start()
[Avatar]

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");
[WWW] [Yahoo!] aim icon [MSN] [ICQ]
GustavoLaguna
JavaTeenager
[Avatar]

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.
Puppets
Virtual Machine Man
[Avatar]

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.
GustavoLaguna
JavaTeenager
[Avatar]

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.
nicoweda
JavaChild
[Avatar]

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
[MSN]
victorwss
JWizard
[Avatar]

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.
[MSN]
Puppets
Virtual Machine Man
[Avatar]

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.
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).


[WWW]
nicoweda
JavaChild
[Avatar]

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
[MSN]
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team