发新话题
打印

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

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

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文章由 ladycare.tk 口碑最好的护肤品 整理,收集辛苦,希望能保留出处。
jiyizhen-buy.com颈椎保健枕太空记忆枕 igerl.com歌瑞尔内衣

TOP

发新话题