通过Java反射调用方法
2017-08-28 11:48
344 查看
import java.lang.reflect.Method; import java.lang.reflect.InvocationTargetException; /** * Created by IntelliJ IDEA. * File: TestRef.java * User: leizhimin * Date: 2008-1-28 14:48:44 */ public class TestRef { /** *通过类地址来调用 */ public void test() { try { Class clazz = Class.forName("com.xlwz.wizard.impl.ChooseJdkprocess"); Method getRootPath = clazz.getDeclaredMethod("getRootPath"); System.out.println(getRootPath.invoke(clazz.newInstance())); } catch (Exception e) { } } public static void main(String args[]) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException { Foo foo = new Foo("这个一个Foo对象!"); Class clazz = foo.getClass(); Method m1 = clazz.getDeclaredMethod("outInfo"); Method m2 = clazz.getDeclaredMethod("setMsg", String.class); Method m3 = clazz.getDeclaredMethod("getMsg"); m1.invoke(foo); m2.invoke(foo, "重新设置msg信息!"); String msg = (String) m3.invoke(foo); System.out.println(msg); } } class Foo { private String msg; public Foo(String msg) { this.msg = msg; } public void setMsg(String msg) { this.msg = msg; } public String getMsg() { return msg; } public void outInfo() { System.out.println("这是测试Java反射的测试类"); } }
调用静态方法
public static void Test(){ System.out.println("123"); } public static void main(String[] args) throws Exception { Class c; c = Class.forName("link.Test3"); Method m = c.getMethod("Test"); m.invoke(c); }
控制台输出结果:
这是测试Java反射的测试类 重新设置msg信息! Process finished with exit code 0
http://lavasoft.blog.51cto.com/62575/61002
相关文章推荐
- 通过Java反射调用方法
- 通过Java反射调用方法
- java中通过反射获取方法并且调用(getMethod和invoke深入)实践
- 黑马程序员java高新技术篇----通过反射调用main方法
- 通过JAVA的反射调用类中的公有私有方法
- Java中通过反射调用其他类中的main方法时要注意的问题
- java通过反射 寻找配置文件 调用方法
- Java 通过反射机制动态调用java类方法
- 通过Java反射调用方法
- 通过Java反射调用方法
- java 通过反射获得类的属性和调用方法
- 通过Java反射调用方法的实例,通过这个例子,能明白怎么用反射。
- Java 动态的创建注入代码,注入方法给类或者接口并通过反射调用
- java中通过反射获取方法并且调用(getMethod和invoke深入)实践
- [Java] - 通过反射调用对象的方法
- 通过java反射调用远程方法
- 通过Java反射调用方法
- Java中通过反射调用其他类中的main方法时要注意的问题
- 有关java通过反射机制调用类中自有方法的问题
- Java通过反射实现方法调用