java反射在运行时实例化类,调用实例方法,java实例,下面代码展示如何在运行时
分享于 点击 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
用户点评