欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

java反射在运行时实例化类,调用实例方法,java实例,下面代码展示如何在运行时

来源: javaer 分享于  点击 9775 次 点评:7

java反射在运行时实例化类,调用实例方法,java实例,下面代码展示如何在运行时


下面代码展示如何在运行时实例化类,并调用实例的方法。

我们需要使用Class类的forName()方法获得Class实例,然后通过Class的newInstance()方法获得类的实例。

然后我们可以通过反射获得类的方法定义,并执行方法。

如下是示例代码:

package cn.outofmemory.examples;import java.lang.reflect.Method;/** * * @author byrx.net */public class Main {    public void loadClass() {        try {            Class myclass = Class.forName(getClassName());            //Use reflection to list methods and invoke them            Method[] methods = myclass.getMethods();            Object object = myclass.newInstance();            for (int i = 0; i < methods.length; i++) {                if (methods[i].getName().startsWith("say")) {                    System.out.println(methods[i].invoke(object));                }            }        } catch (Exception ex) {            ex.printStackTrace();        }    }    private String getClassName() {        //Do appropriate stuff here to find out the classname        return "com.javadb.examples.MyClass";    }    public static void main(String[] args) {        new Main().loadClass();    }}

MyClass的定义

package cn.outofmemory.examples;/** * * @author byrx.net */public class MyClass {    public String sayHello() {        return "Hello";    }    public String sayGoodbye() {        return "Goodbye";    }}

输出:

HelloGoodbye
相关栏目:

用户点评