Java通过反射调用对象的方法

欢迎进入Java社区论坛,与200万技术人员互动交流 >>进入

  TestRef.java

  import java.lang.reflect.Method;

  import java.lang.reflect.InvocationTargetException;

  /**

  * Created by IntelliJ IDEA.

  * File: TestRef.java

  * User: String

  * Date: 2010-3-29 14:48:44

  */

  public class TestRef {

  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反射的测试类”);

  }

  }

  控制台输出结果:

  这是测试Java反射的测试类

  重新设置msg信息!

  Process finished with exit code 0

这一秒不放弃,下一秒就会有希望。

Java通过反射调用对象的方法

相关文章:

你感兴趣的文章:

标签云: