Interface MethodInfo do Vraptor

4 respostas
L

Pessoal,

Alguma forma de fazer um cast dinâmico com o metódo getParameters de DefaultMethodInfo.

Product productParam = (Product) info.getParameters()[0];

?

4 Respostas

Lucas_Cavalcanti

se o que você quer é evitar esse (Product) não dá… (pq o retorno é uma array)

mas o código que você colocou funciona.

L

A ideia é evitar (Product) porque o cast vai ter que ser feito para todas as classes do modelo.

Lucas_Cavalcanti

por que você está usando isso? talvez tenha um jeito mais fácil…

você pode criar uma interface que wrappeia o MethodInfo

public interface FancyMethodInfo {
    <T> T getParameter(int i);
}

criar uma implementação que só delega pra MethodInfo:

@Component
public class FancyMethodInfoImpl {
    public FancyMethodInfoImpl(MethodInfo info) {
          this.info = info;
    }
    public <T> T getParameter(int i) {
          return (T) info.getParameters()[i]; //unchecked
    }
}
L

Eu estou fazendo uma auditoria e preciso pegar os parâmetros e o result.
Com o wrapper vai dar certo. Valeu.

Criado 20 de junho de 2011
Ultima resposta 21 de jun. de 2011
Respostas 4
Participantes 2