import java.util.*;
class LimiGe{
public <T extends Number> void cham(T list){
}
public static void main(String agr[]){
ArrayList<Integer> li = new ArrayList<Integer>();
LimiGe ge = new LimiGe();
ge.cham(li);
}
}
o codigo nao compila pq? segundo a kathy isso seria possivel!!
import java.util.*;
class LimiGe<T extends Number>{
public <T> void cham(T list){
}
public static void main(String agr[]){
ArrayList<Integer> li = new ArrayList<Integer>();
LimiGe ge = new LimiGe();
ge.cham(li);
}
}
Apesar de que para este seu caso nao se aplica assim, mas basta revisar ai, o principal sobre generics esta ai.
public class Teste<T> {
private T generico;
public T getGenerico() {
return this.generico;
}
public void setGenerico(T generico) {
this.generico = generico;
}
}
public static void main(String[] args) {
Teste<String> teste = new Teste<String>();
teste.setGenerico("classe generica");
System.out.println(teste.getGenerico());
}
A partir do codigo acima, quando declaro a classe teste como sendo <String>, faço com que todos os atributos T da classe referenciem a String.
Também é assim que as collections são implementadas.
hum saquei!! o que era tipo eh uma String agora hehe! T quer dizer que pode receber qualquer tipo! da sua sua class!! a diferença entao entre <?> e o ?