易截截图软件、单文件、免安装、纯绿色、仅160KB

通过java反射机制动态调用某方法的总结

通过java的反射机制,动态调用某个方法:
如下:
public Object invokeMethod(String className, String methodName,
Object[] args) throws Exception{
Class ownerClass = Class.forName(className);
Object owner = ownerClass.newInstance();

Class[] argsClass = new Class[args.length];

for (int i = 0, j = args.length; i < j; i++) {

argsClass[i] = args[i].getClass();
}

Method method = ownerClass.getMethod(methodName, argsClass);
return method.invoke(owner, args);
}  
 但是,我们在实际应用中,还会碰到一种情况,传入的实参和要被调用的方法的形参可能不完全一致:
比如,在struts1.x中的某个方法被调用时候,它会有HttpServletResponse类型的参数,
我们在tomcat中,request对象的实例其实是:org.apache.catalina.connector.ResponseFacade
它实现了接口:javax.servlet.http.HttpServletResponse;
如果我们直接把web容器中的request对象当做一个参数,传入上面的代码片段的话, 就有问题,这时,我们的处理办法是这样的,在action中,方法一般形如:
public ActionForward query(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response)
response一般位于第四个,那么我们修改以上的代码:

        for (int i = 0, j = args.length; i < j; i++) {   
         
           argsClass[i] = args[i].getClass();             
        }  
改为:
        for (int i = 0, j = args.length; i < j; i++) {   
         if(i == 3){
           argsClass[i] = HttpServletResponse.class;   
         


相关文档:

java技能百炼001 Test

package CH1;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class exercise001 extends JApplet {
 // 定义变量
 private JColorChooser chooser = new JColorChooser();
 private JButton button = new JButton("Show Color Chooser");
 private JDialog dialo ......

Java实用经验总结 Swing篇


前言
本文前言部分为我的一些感想,如果你只对本文介绍的Java实用技巧感兴趣,可以跳过前言直接看正文的内容。
本文的写作动机来源于最近接给人家帮忙写的一个小程序,主要用于管理分期付款的货款的一系列管理,包括过期款的纪录,过期款利息的计算,为提前付款的用户提供一些返款奖励等等,这些与本文无关自不必细说。 ......

java api 现在

JAVA在线api
2009年06月07日 17:06
1.Hibernate API Documentation (3.2.2.ga)
http://www.hibernate.org/hib_docs/v3/api/
2.Spring Framework API 2.5
http://static.springframework.org/spring/docs/2.5.x/api/index.html
3.Struts 1.3.8 API
http://struts.apache.org/1.3.8/apidocs/index.html
4.Struts 2 Co ......

JAVA(二)


Java   杂谈(三) 
        这已经笔者写的第三篇Java杂记了,庆幸前两篇一直得到论坛朋友们的支持鼓励,还望大家继续指正不足之处。笔者也一直渴望通过这样方式清醒的自审,来寻找自己技术上的不足之处,希望和共同爱好Java的同仁们一起提高。 
 & ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号