易截截图软件、单文件、免安装、纯绿色、仅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开发速度(Eclipse快捷键应用)

想在开发中提高速度和效率!不能忘记的Eclipse快捷键
Eclipse快捷键大全
推荐Ctrl+1 快速修复(最经典的快捷键,就不用多说了)
Ctrl+D: 删除当前行
Ctrl+Alt+↓ 复制当前行到下一行(复制增加)
Ctrl+Alt+↑ 复制当前行到上一行(复制增加)
Alt+↓ 当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴 ......

Java实用经验总结 Swing篇


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

最小二乘法JAVA代码

在网上找到的代码是错的,自己写了一个
最小二乘法的代码,二个构造方法,一个是不带权的,一个是带权的
/**
* 最小二乘法计算类
*
* @author Administrator
*
*/
public class LeastSquareMethod {
private double[] x;
private double[] y;
private double[] weight;
private int m;
private do ......

java rmi简单例子

----------接口------------
import java.rmi.*;
public interface HelloIn extends java.rmi.Remote{
 String sayHello() throws RemoteException;
}
--------实现类-------------
import java.rmi.*;
import java.net.*;
import java.rmi.registry.*;
import java.rmi.server.*;
public class Hello exten ......

Java调用系统命令学习(二)

经过上一篇的学习,应该对Java中的Runtime类的exec方法了大致的了解,也知道应该如何去使用了吧。
首先学习下:Process类。
简单地测试一下:
调用Javac命令,并查看执行命令的返回值,并输出到控制台上去。
import java.io.IOException;
class Exec_Javac{
public static void main(String []args)throws IO ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号