Nao compila pq<T>

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!!

Voce deve declarar isso na classe.

Assim:

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.

Até mais …

eh obrigatorio ser na class? pq? rodou mesmo…

Sim…
Acho que voçê nao entendeu a situação…

Vejamos o código a seguir.

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.

Qualquer duvida grita.

Até mais…

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 ?

Cara achei um tutorial completo sobre generics, certamente vai te esclacer todas as duvidas sobre isso.

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

Até mais…