Fitorinaudo Posted April 19, 2013 at 07:49 PM Report #504094 Posted April 19, 2013 at 07:49 PM 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. 😉
pedrotuga Posted April 19, 2013 at 08:35 PM Report #504099 Posted April 19, 2013 at 08:35 PM 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.
Fitorinaudo Posted April 19, 2013 at 09:07 PM Author Report #504106 Posted April 19, 2013 at 09:07 PM 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á
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now