黑马程序员技术交流社区

标题: 关于反射中的Method方法 [打印本页]

作者: せR3n、何必装纯    时间: 2011-11-22 14:47
标题: 关于反射中的Method方法
前一段时间看了张老师讲的反射,没弄明白,跳过去了,今天又去看了。但看到方法的时候,有点弄不明白
如:Method mt=String.class.getMethod("charAt",int.class);
为什么要用String去点呀?
作者: tintick    时间: 2011-11-22 15:17
因为他要反射出String类的方法呀。
作者: 高庆亮    时间: 2011-11-22 15:17
本帖最后由 高庆亮 于 2011-11-22 16:46 编辑

因为是获得String类的Method,如果你把它换成其他类就是获得其它类的Method。
Method mt=String.class.getMethod("charAt",int.class);
这句话的意思是通过反射获得String类里的charAt方法。
(老师记得给我加分呀!就差3分了。我就要去黑马啦!)
作者: 张志东    时间: 2011-11-22 15:46
补充一点:反射就是用另一种方式去调用一个类,并且比原来的方式还要多。
作者: 崔浩    时间: 2011-11-22 16:53
首先class是通过Object继承过来的,是一个静态的属性,String.class得到的是String在内存中的字节码,然后同过getMethod("charAt",int.class);其中charAt代表的是方法的名称,而int.class 代表的是方法中参数的类型
作者: 宿万涛    时间: 2011-11-22 17:30
得到字节码对应的实例对象有三种方式

(1)类名.class                       例如Peson.class

(2)对象.getClass()        例如new Date().getClass()

(3)Class.forName("类名") 例如Class.forName("java.util.Date")

这里String就是java类,String.class就是用来得到String类的字节码




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2