黑马程序员技术交流社区

标题: 反射中的问题 [打印本页]

作者: 刘占月    时间: 2012-4-14 17:49
标题: 反射中的问题

  1. <p>   String str1 = "abc";
  2.   
  3.   Method mathodCharat = <font color="red">String</font>.class.getMethod("charAt", <font color="red">int.class</font>);//这段代码两点不懂。为什么用String. ?   int.class什么意思?
  4.   
  5. System.out.println(mathodCharat.invoke(str1, 1)); </p>
复制代码

作者: 如梦初醒    时间: 2012-4-14 19:23
本帖最后由 如梦初醒 于 2012-4-14 19:25 编辑

String str1 = "abc";
Method mathodCharat = String.class.getMethod("charAt", int.class);//这段代码两点不懂。为什么用String. ?   int.class什么意思?
  System.out.println(mathodCharat.invoke(str1, 1));
我的回答:
String.class (类字面常量方式)  获得到的String类的java.lang.Class对象
String类的java.lang.Class对象 封装了String对象上的一切信息
通过String类的java.lang.Class对象的getMethod("charAt", int.class)方法反射到Sting对象上的charAt(int i)方法
getMethod("charAt", int.class)第一个参数为String对象上的方法名(如这里的charAt),第二个参数为要反射的方法的参数类型的Class对象(如这里的charAt(int i)方法的参数int的Class对象int.class)

作者: 刘占月    时间: 2012-4-14 21:47
如梦初醒 发表于 2012-4-14 19:23
String str1 = "abc";
Method mathodCharat = String.class.getMethod("charAt", int.class);//这段代码两 ...

十分感谢




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