Ir para o conteúdo
Fitorinaudo

Tipos Genéricos

Mensagens Recomendadas

Fitorinaudo

Pessoal, alguem me pode explicar muito rapidamente o que são tipos genéricos e para que servem exactamente? Preciso mesmo de saber isso Sff. ;)

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pedrotuga

Genéricos é uma sintaxe que permite passar o tipo de dados a construtores e métodos de estruturas de dados que podem alojar vários tipos de dados.

A utilidade é que permitem que permitem às estruturas de dados armazenar um tipo de objecto genérico (daí o nome) mas ao mesmo tempo permitem que o compilador confira se há consistencia nos tipos pelo teu programa fora.

Tirado da wikipedia:

Exemplo sem genéricos:

List v = new ArrayList();

v.add("test");

Integer i = (Integer)v.get(0);

O ArrayList sempre aceitou qualquer objecto que herdasse do tipo Object, ou seja, todos os tipos. A diferença é que quando se adicionava, perdia-se a informação sobre o tipo. Tinha que se recorrer a um cast como mostra o exemplo. Mas isto é basicamente dizer ao compilador para não se preocupar com a compatibilidade de tipos, que em runtime se converte no que for preciso. Ora, não é possível converter a string "teste" num Integer, pelo qu ex

emplo acima dá um erro em runtime, apesar de compilar.

Com genéricos, passas ao compilador, a infromação sobre que tipo estas a utilizar:

List<String> v = new ArrayList<String>();

v.add("test");

Integer i = v.get(0); // (type error) Compile time error

Aqui, quando chegas À ultima linha já disseste que tipo é que vais meter em cada elemento do ArrayList, pelo já não é possível compilares este código. O compilador não te deixa dazres uma atribução de um valor que já sabe que é to tipo String a uma variável que já sabe que é do tipo Integer.

Ou seja, é um mecanismo de type-safety para estruturas de dados.

Fonte:

http://en.wikipedia.org/wiki/Generics_in_Java

Isto foi novidade no java 5, os programadores de java hoje em dia interrogam-se como é que se escrevia java antes dos genéricos.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Fitorinaudo

Portanto, por exemplo um array list pode conter dados de vários 'Tipos' certo? Isto é, de classes diferentes, Certo? O qq difere um array list dum vector exactamente? É que agora começámos a usar a biblioteca do java e isso e estou um bocado perdido. ArrayList() é uma classe?

Peço desculpa pela quantidade de perguntas...

Obrigado desde já

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.