Dúvida em questão de Generics

3 respostas
A

Alguem sabe responder essa questao e me explicar??

3 Respostas

T
class Teste<T> {
    // non-static class T cannot be referenced from a static context
    static T obj2; 

    // non-static class T cannot be referenced from a static context
    static T getObj(){ 
        // non-static class T cannot be referenced from a static context
        return new T(); 
    } 

    static void showObj(){ 
        // non-static class T cannot be referenced from a static context
        T obj = new T(); 
        obj.show(); 
    } 

    T objX;  // OK

    T getObjX(){ 
        return new T();  // nao pode fazer isso com Generics
    } 

    void showObjX(){ 
        T obj = new T(); // nao pode fazer isso com Generics
        obj.show(); // se T nao tem um "bound" (nao estende uma classe 
                    // que tem um metodo "show") nao posso chamar este
                    // metodo
    } 



}

A resposta e’ E, porque “static” e generics nao se misturam.
Em Generics tambem nao se pode usar “new T” ou “new T[]”

A
aki
public static <T> void  makeArrayList1(T t) {  

		List<T> list = new ArrayList<T>(); //agora podemos criar o list usando "T"
		list.add(t);
	}

eu tenho um metodo static q usa generics.. e ele funciona!!! pq!! soh por causa do ?? nun entendo o pq disso

sergiotaborda
arthurnn:
aki
public static <T> void  makeArrayList1(T t) {  

		List<T> list = new ArrayList<T>(); //agora podemos criar o list usando "T"
		list.add(t);
	}

eu tenho um metodo static q usa generics.. e ele funciona!!! pq!! soh por causa do ?? nun entendo o pq disso

funciona porque vc está generalizando o método e não a classe como no exemplo do primeiro post. Generalização de métodos é mais permissiva que a de classes

Criado 6 de junho de 2007
Ultima resposta 6 de jun. de 2007
Respostas 3
Participantes 3