Como passar classe tipo T em tempo de execução(reflection) para uma classe <T>

0 respostas
E

Tenho o metodo abaixo que retorna uma instancia do tipo do objeto que esta na mensagem.

private Object tipoObjetoMensagem(Message message) throws FinanceiroException {
		Object objeto = null;
		try {
			objeto = Class.forName(message.getBody().get().getClass().getName()).newInstance();
		} catch (ClassNotFoundException e) {
			throw new FinanceiroException(e);
		} catch (InstantiationException e) {
			throw new FinanceiroException(e);
		} catch (IllegalAccessException e) {
			throw new FinanceiroException(e);
		}
		return objeto;
	}

Eu tenho uma classe que recebe um tipo de classe T

public class Mensagem<T extends Serializable> implements Serializable {
private T t;
enviar(Object objeto, Class<T> _class){
...
setT( _class.cast(objeto));
			ObjectMessage om = session.createObjectMessage();
			om.setObject(this.t);
			QueueSender sender = session.createSender(queue);
			sender.send(om);
...
}

..}

que é usada assim:

Mensagem<Financeiro> jms = new Mensagem<Financeiro>();
Financeiro f = new Financeiro()
f.setXX();
jms.enviarMensagem(f, Financeiro.class)

//preciso que o tipo Financeiro seja passado via reflection neste momento => Mensagem<Financeiro> jms = new Mensagem<Financeiro>();

Eu preciso criar um objeto Mensagem usando o tipo de classe retornado pelo metodo tipoObjetoMensagem(..). Como eu [poderia fazer isso ? Não estou conseguindo...

Criado 26 de novembro de 2012
Respostas 0
Participantes 1