do seguinte modo:
Public Object InvoKemethod (String ClassName, String MethodName, Object [] args) lança exceção {class OwnerClass = Class.ForName (ClassName); Proprietário do objeto = OwnClass.NewInstance (); Classe [] argsclass = nova classe [args.length]; for (int i = 0, j = args.length; i <j; i ++) {argsclass [i] = args [i] .getClass (); } Método Método = OUNCERCLASS.GETMETHOD (MethodName, argsclass); Return Method.invoke (proprietário, args);}No entanto, em nossa aplicação real, também encontraremos uma situação em que os parâmetros reais de entrada e os parâmetros formais do método a serem chamados podem não ser completamente consistentes:
Por exemplo, quando um método no STRUTS1.x é chamado, ele terá parâmetros do tipo HttpServletResponse.
No tomcat, a instância do objeto de solicitação é realmente: org.apache.catalina.connector.Responsefacade
Ele implementa a interface: javax.servlet.http.httpServletResponse;
Se tratarmos diretamente o objeto de solicitação no contêiner da web como um parâmetro e o passarmos para o trecho de código acima, haverá um problema. Neste momento, nosso método de manuseio é assim. Em ação, o método é geralmente como:
Public Actionforward Query (mapeamento de ação, formulário de ação, formulário,
Solicitação httpServletRequest, resposta httpServletResponse)
A resposta geralmente está localizada no quarto, então vamos modificar o código acima:
Pacote
for (int i = 0, j = args.length; i <j; i ++) {argsclass [i] = args [i] .getClass (); }Mudar para:
for (int i = 0, j = args.length; i <j; i ++) {if (i == 3) {argsclass [i] = httpServletResponse.class; } else {argsclass [i] = args [i] .getclass (); }}O resumo acima (recomendado) de chamar dinamicamente um determinado método através do mecanismo de reflexão Java é todo o conteúdo que compartilho com você. Espero que você possa lhe dar uma referência e espero que você possa apoiar mais o wulin.com.