GENERICS JAVA 5: Usar ou não usar?? eis a questão....  XML
Índice dos Fóruns » Java Enterprise Edition (Java EE)
Autor Mensagem
Javabuntu
GUJ Master
[Avatar]

Membro desde: 08/02/2007 17:15:32
Mensagens: 1315
Localização: Brasília
Offline

pessoal comecei a estudar uns códigos que usam genérics, li materiais sobre o assunto...etc..etc...
Mas percebi em vários lugares, e até mesmo aqui no GUJ, vi comentários do tipo "Ainda bem que já colocaram o genérics no java".....outros "pelo amor de Deus, tira o genérics do java"...sabemos q a sun não irá retirar....

Mas e ai? realmente vale a pena usar ou não??

ou depende sempre do velho conselho: "depende muito do teu projeto...." afffff

pergunto se é um padrão a adotar a fundo SEMPRE.... ou não adotar....o que me dizem os experientes no assunto.....

pelo que estudei e vi até agora, achei muito interessante, mas pela minha falta de prática (ou nenhuma) no generics, não vi os lados ruins...etc...


Vamos lá abram vossos corações......

This message was edited 1 time. Last update was at 02/10/2007 10:28:21


SCJP 6
SCJD
SCWCD 5
Itil V2
[MSN]
foxpv
JavaEvangelist
[Avatar]

Membro desde: 11/04/2006 09:35:56
Mensagens: 343
Offline

uai....
n conheco nenhum bom motivo para n usar generics n...
alguem conhece?

SCJP 1.5
davidbuzatto
Moderador
[Avatar]

Membro desde: 07/08/2004 23:47:57
Mensagens: 4013
Localização: Vargem Grande do Sul - SP
Offline

Deve-se sim usar os generics. Se vc compilar um código com uma versão do Java maior que a 5.0 vai ver que ele vai te avisar que algumas operações "não seguras" foram detectadas. Se quiser ver os warnings, compila passando o parâmetro -Xlint. Normalmente é pela falta de uso dos tipos genéricos que esses warnings são gerados. A maior vantagem do seu uso é que eles garantem a "integridade" de uma coleção, assegurando que apenas um certo tipo (ou seus subtipos é claro) pode ser inserido naquela coleção. Dei o exemplo das coleções pois é o uso mais comum dos genéricos.

Já teve um post sobre isso aqui no guj, uma pergunta de como usar os mesmos. Muitas pessoas deram dicas, inclusive eu. Dê uma pesquisada.

Abraço!

This message was edited 1 time. Last update was at 02/10/2007 10:19:30


Seja educado. Agradeça quem te ajudou. Não custa nada.
Dúvidas de Java? Utilize o fórum! Não respondo via MP.

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Fowler)
"A vida é um escândalo, e no final dá sempre errado. O que humaniza o homem é o fracasso."

http://davidbuzatto.com.br | GitHub | uHunt | CV Lattes | Last.fm
[WWW]
RaulCarlin
JavaEvangelist
[Avatar]

Membro desde: 20/05/2005 12:58:30
Mensagens: 389
Localização: São Paulo
Offline

Pra usar generics não conheço motivos para NÃO usar, agora acento na língua inglesa conheço todos os motivos para não usar... hehehehe

Brincadeiras à parte, eu uso sempre, seja em um mero Iterator, seja na criação de uma super classe pra garantir que as subclasses sejam do tipo esperado...
[WWW]
Rodrigo Vieira Pinto
JavaEvangelist
[Avatar]

Membro desde: 15/07/2004 11:05:05
Mensagens: 354
Localização: São Paulo
Offline

Devem sim ser usados, mas com moderação

"Ser o segundo é ser o primeiro dos perdedores" - Ayrton Senna

"Eu vou dá 10 pau!!" - Aracy de Almeida

Nova dupla sertaneja: Waterfall e Procedural. Pra começar, é sertanejo (ARGH!)

"Bem, dizia eu que a aritmética..." - Prof. Girafales

CarlosEduardoDantas
GUJ Master
[Avatar]

Membro desde: 13/11/2006 15:26:38
Mensagens: 1089
Offline

uso muito em conjuntos.. fora deles, uso, mas com MUITA MODERAÇÃO.

'Nós somos o que repetidamente fazemos. Excelência, então, não é um ato, mas um hábito'.

Aristóteles.

carloseduardoxp
[MSN] [ICQ]
gomesrod
GUJ Ranger
[Avatar]

Membro desde: 11/05/2007 19:46:22
Mensagens: 901
Offline

Rodrigo Vieira Pinto wrote:Devem sim ser usados, mas com moderação

Eu não acho necessário usar com moderação, pode usar e abusar

Só vejo um pequeno problema, que é quando você tem declarações muito complexas, usando curingas, "extends", <> aninhados, etc. Aí o código vai ficando um pouco complicado...
Eduardo Bregaida
Moderador
[Avatar]
Membro desde: 13/11/2003 14:11:35
Mensagens: 2416
Localização: São Caetano do Sul - SP
Offline

Rodrigo Vieira Pinto wrote:Devem sim ser usados, mas com moderação


Oq vc quer dizer com moderação?

Blog - Java Anywhere
@bregaida - Twitter
Flickr - Fotos
Cursos de Java?

"Você poderia me dizer, por favor, qual caminho eu devo seguir?"
"Isto depende muito de onde você deseja chegar."
-Lewis Carroll, Alice no País das Maravilhas
[Email] [WWW] [MSN]
hebertaquino
JavaChild

Membro desde: 02/06/2005 11:47:12
Mensagens: 140
Offline

Antes de tudo veja os impactos de quem irá implantar o sistema, quem irá manter e se todos que irão desenvolver estão por dentro de como usar generics e se utilizam da maneira mais correta.
Acho que tudo que você irá desenvolver pela 1ª vez nem sempre sai as mil maravilhas..... Sempre encontrará falhas e bugs....

[]'s a todos
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline

É bom aprender se for fazer manutenção nos meus programas :P
[WWW]
ViniGodoy
Moderador
[Avatar]

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

Também não vejo motivo para não usa-los... Nos meus programas eu uso sempre.

@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]
WilliamSilva
Moderador

Membro desde: 02/03/2005 11:08:44
Mensagens: 1747
Localização: Santos -SP.
Offline

thingol wrote:
É bom aprender se for fazer manutenção nos meus programas
E pensar duas vzs. se vai conseguir chegar no final do dia sem dor de cabeça.....
O generics tai..tem que usar...é pra usar.....ou vc. é daqueles que gosta de ficar fazendo typecast/casting até o dia amanhecer...sei lá tem gente que gosta de sofrer....

= William Silva =
iSHARE - Document Management System
[Email] [WWW] [MSN]
outsider
What is classpath?

Membro desde: 19/09/2007 15:27:18
Mensagens: 8
Offline

Antes de perguntar se deve usar, é melhor vc entender porque foi criado: facilitar na codificação
pois não precisa fazer cast e garantir maior segurança naquilo que pode ser inserido num conjunto.
Fora dos conjuntos já entra também na questão de como suas classes são projetadas, e nesse
caso o problema não é o uso ou não dos genéricos, trata-se mais de um problema de design, e
nesse sentido acredito que sempre será possível encontrar melhor solução que criar classes
genéricas. Ou seja, para conjuntos: use, para classes: procure outra solução antes.

abs
Tecnoage
GUJ Master

Membro desde: 13/03/2005 23:18:07
Mensagens: 1723
Localização: SP
Offline

ainda não apereceu ng defendendo o NÃO uso de generics... Alguém se habilita? (No Flamewar!!! Yes CURIOSIDADE!!!)

Arquiteto de Software
Sysped Solutions
R3 SAP CAT-83, NF-e, ECD, EFD, CT-e, MANAD, IN86
www.sysped.com.br
[Email] [WWW] [MSN]
heitorzim
Smalltalk

Membro desde: 15/02/2008 22:17:56
Mensagens: 1
Offline

Se eu tenho uma classe abstrata Ponto e duas implementações concretas: PontoInteiro e PontoReal;

Eu gostaria de poder escrever um método que fizesse algo com uma lista de qquer tipo de pontos:

void fazAlgo(ArrayList<Ponto> pontos)
{
para cada ponto em pontos, faça:
ponto.umMetodoQueQquerPontoTem();
}

Gostaria de poder fazer:

imprime(new ArrayList<PontoInteiro> );
imprime(new ArrayList<PontoReal> );

Mas usando generics não dá, pois ArrayList<PontoInteiro> não é um ArrayList<Ponto> só pq um PontoInteiro é um Ponto. Tem que deixar de usar os generics.

Isso é um motivo?

Editando: Não, não é motivo pois podemos usar um maravilhoso WildCard no valor de um milhão de reais em barras de ouro que valem mais do que dinheiro.

This message was edited 2 times. Last update was at 15/02/2008 22:40:48

 
Índice dos Fóruns » Java Enterprise Edition (Java EE)
Ir para:   
Powered by JForum 2.1.8 © JForum Team