Pergunta Avançada: Generics

2 respostas
saoj

Quero que o tipo de retorno de um método seja dinâmico, definido no runtime.

Basicamente, de forma bem clara, o que eu quero é:

Um método em Java que decida o tipo que ele vai retornar baseado num parâmetro que eu passar pra ele. Assim:

User u = retornaQualquerCoisa(User.class);

Person p = retornaQualquerCoisa(Person.class);

Impossível?

2 Respostas

brunoccouto

public <T> T nova(Class<T> clazz) throws Exception { return clazz.newInstance(); }

Se sua classe tiver um construtor sem argumentos deve funcionar.

Marky.Vasconcelos

O legal é que voce pode fazer até mais.

User x = getQualquerCoisa();
Person x = getQualquerCoisa();

E o método

public <T> T getQualquerCoisa(){
 return (T) new Object();
}

Mas repare que o compilador ira reclamar de realizar uma uncheked operation.

Criado 12 de julho de 2010
Ultima resposta 12 de jul. de 2010
Respostas 2
Participantes 3