浏览 855 次
锁定老帖子 主题:反射机制
该帖已经被评为隐藏帖
|
|
---|---|
作者 | 正文 |
发表时间:2008-12-01
//对于任意一个对象,都能够调用它的任意一个方法; //这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 public class Test { public static void main(String[] args) { String className="com.zengguo.Father"; // try { // Class c=Class.forName(className); //当这个类有无参的构造方法时我们可以这样调用 // Object obj=c.newInstance();//生成对象实体 // Class []cl=new Class[]{String.class};//参数的类型 // Method m=c.getMethod("show",cl);//show是方法名 // Object returnValue=m.invoke(obj,new Object[]{"zengguo"}); // System.out.println(returnValue); // } catch (Exception e) { // e.printStackTrace(); // } //当这个类的构造方法有一个int行的参数是时我们这样调用 try { //加载一个类(其实这个类我们在编译的时候是完全未知的,只有在运行的时候才知道),同时返回的是Class这样的一个描述类 Class c=Class.forName(className); //构造方法的参数的类型 Class []ctorcl=new Class[]{int.class}; Constructor ctor=c.getConstructor(ctorcl); Object obj=null; obj=ctor.newInstance(new Object[]{1});//生成对象实体 //调用的方法的参数类型 Class []methodcl=new Class[]{String.class}; Method m=c.getMethod("show",methodcl); //调用 Object returnValue=m.invoke(obj,new Object[]{"zengguo"}); System.out.println(returnValue); } catch (Exception e) { e.printStackTrace(); } } } 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |