A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李计伟 中级黑马   /  2012-11-10 20:12  /  1005 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

反射
Class类java程序中的各个java类属于同一类事物,描述这类事物的java类名就是Class.
字节码是Class的对象.
Class.forName("java.lang.String")//获得字节码
类名.class  //获得字节码
对象.getClass() //获得字节码
构造方法的反射
Constructor类
new String(new StringBuffer("abc"));
反射实现
Constructor con =String.class.getConstructor(StringBuffer.class)
String str =(String) con.newInstance(new StringBuffer("abc"))
成员变量的反射
Field 类
可见的成员变量
Student s =new Student(3,5);
Field field =s.getClass().getField("y");
fieid.get(s)//field不是对象身上的变量是类上的
私有的成员变量
Student s =new Student(3,5);
Field field =s.getClass().getDeclaredField("x");
fieid.setAccessible(true);//暴力取值
fieid.get(s)
成员方法的反射
Method类
Method methodCharAt = String.class.getMethod("charAt",int.class);
System.out.println(methodCharAt.invoke(str1,1));

1 个回复

倒序浏览
值得学习ing!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马