黑马程序员技术交流社区
标题:
java成员方法的反射
[打印本页]
作者:
考拉是只猫
时间:
2014-12-1 10:20
标题:
java成员方法的反射
public class Test{
public static void main(String[] args) throws Exception {
Person p = new Person();
Class cls = p.getClass();//获取Person的字节码
//获取setName()方法,需要传入参数为String
Method method1 = cls.getMethod("setName", String.class);
method1.invoke(p, "小明");//关联p,输入“小明”并执行该方法
//获取getName()方法,无参则设为null
Method method2 = cls.getMethod("getName", null);
String name = (String) method2.invoke(p, null);//invoke返回的类型为Object
System.out.println(name);
//获取静态方法,由于静态方法只依赖与类,所以不需要提供具体的实例
Method method3 = cls.getMethod("show", int.class);
// method3.invoke(p, 1);提供具体实例p也可通过编译
method3.invoke(null, 1);
}
}
class Person{
public String name;
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
System.out.println("设置name值为:" + name);
}
public static void show(int i){
System.out.println("这是一个静态方法:" + i);
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2