日期:2014-05-19  浏览次数:20646 次

java如何实现动态可变执行某一个类的方法,从数据库查出类和方法 然后执行
现在我主要实现的效果是,通过设置也个参数,根据不同的参数查出数据库中对应的类及方法,然后跳转到该方法中执行
在前调用方法时直接new你个对象就可以调用,但因为现在类是可变的,不知道怎么跳转到特定的方法中。

------解决方案--------------------
java 反射
------解决方案--------------------
利用发射调用,给你写了个例子,理解一下吧
Java code

public class Test {

    public static void main(String[] args) throws Exception{
        //1.需要提供class的name
        //2.需要提供方法名称
        //3.需要提供方法参数类型;
        //4.参数值
        
        //如果使用下面的这种需要提供无参构造
        String className = "com.test.T";
        String paramClass = "java.lang.String";
        String methodName = "say";
        String paramValue = "jack";
        
        Class<?> c = Class.forName(className);
        Object obj = c.newInstance();
        Method method = c.getDeclaredMethod(methodName, new Class[]{Class.forName(paramClass)});
        method.invoke(obj, new Object[]{paramValue});
    }
}

class T{
    public void say(String name){
        System.out.println("hello " + name);
    }
}

------解决方案--------------------
反射。