Sao os “Generics”…

Rafael

public class MeuVetorFixo<Tipo>{

  private Tipo vetor[100];

  public Tipo pegaElementoNaPosicao(int i) {
    return this.vetor[i];
  }

}

Aqui voce pode dar um new MeuVetorFixo<String> ou de outra coisa, e nao vai precisar de casting.

[quote=“Paulo Silveira”][code]
public class MeuVetorFixo{

private Tipo vetor[100];

public Tipo pegaElementoNaPosicao(int i) {
return this.vetor[i];
}

}
[/code]

Aqui voce pode dar um new MeuVetorFixo<String> ou de outra coisa, e nao vai precisar de casting.[/quote]

Então eu poderei fazer isto?

String abc = meuVetorFixo[i];

??? :shock:

nao pq nao eixste operatoroverloadmas isso pode:

String abc = meuVetorFixo.get(i);

Então, realmente eu não entendí este <Tipo>

public class MeuVetorFixo<Tipo> {}

[quote=“danieldestro”]Então, realmente eu não entendí este <Tipo>

public class MeuVetorFixo<Tipo> {}

Eh o tipo do objeto… tipo

MeuVetorFixo<String> v = new MeuVetorFixo<String>();
v.add("ssss"); // ok
v.add("aaaa"); // ok
v.add(new OutraClasse()); // erro

Se voce fizesse

MeuVetorFixo<AlgumaOutraClasse> = ...;

entao vc somente trabalharia com objetos do tipo “AlgumaOutraClasse”.

Rafael

Generics servem para parametrizar o(s) tipo(s) de dado(s) que uma Collection irá suportar. Por exemplo, caso você queira criar um ArrayList que só pode armazenar objetos do tipo Usuario, você faria:

ArrayList<Usuario> l = new ArrayList<Usuario>();
l.add(new Usuario("Daniel")); //ok
l.add(new Usuario("Maria")); //ok
l.add(new String("Bla bla")); // erro de compilação.

Você também pode parametrizar tipos que seus VO’s irão suportar:

public class Foo<T implements Serializable, U implements Serializable> implements Serializable{

    private T t;
    private U u;

// getters, setters e o que mais sua imaginação quiser...

}

Pessoal,

Peguei a API do 1.5 e BUMMMMMMMM
hehehehhehe

Alguém pode fazer a gentileza de me dizer o que significa isso?

[quote]
public <A extends Annotation> A getAnnotation(Class<A> annotationClass)
[/quote][quote]
public boolean isAnnotationPresent(Class<? extends Annotation> annotationClass)[/quote]
O que também eu tenho visto muito é: public Class<T> get…()

Vlw

Ae pessoal, um tutorialzinho ae de generics.
Ainda não li, mas espero esclarecer mais minhas dúvidas.

http://java.sun.com/j2se/1.5/pdf/generics-tutorial.pdf

T+