/**
*
*/
/**
* @author chenpeng
* @create_time Aug 9, 2010 9:46:17 AM
* @email onlychenpeng@msn.com
* @usage //todo
*/
public class Foo {
private String msg;
public String getMsg() {
return msg;
}
public void setMsg(String msg,Integer i) {
this.msg = msg+"i:"+i;
}
public void outInfo(){
System.out.println("这是一个java反射测试类");
}
}
测试单元
import java.lang.reflect.Method;
import junit.framework.TestCase;
public class TestRef extends TestCase {
@SuppressWarnings("unchecked")
public void testRef() throws Exception{
String str="Foo";
Class clazz=Class.forName(str);
Object foo=clazz.newInstance();
Method m1=clazz.getDeclaredMethod("outInfo");
//setMsg为方法名,后面的为参数类型
Method m2=clazz.getDeclaredMethod("setMsg", String.class,Integer.class);
Method m3=clazz.getDeclaredMethod("getMsg");
m1.invoke(foo);
m2.invoke(foo, "重新设置测试信息",1);
System.out.println((String)m3.invoke(foo));
}
}
测试结果
这是一个java反射测试类
重新设置测试信息i:1