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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zhousuo28 中级黑马   /  2015-5-30 21:18  /  290 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

一个类,进入到内存,对这个类进行解剖
直接获取成员运行

XXX.class文件进入内存后,产生一个对象,由JVM创建,可以获取
使用这个对象(class文件的对象)方法,解剖这个类

java.lang.Class 类,描述运行时期一个class文件的对象
Class 找获取class文件对象中成员的方法

构造方法,也会被看成一个对象,就有这个对象描述类,用于操作构造方法
java.lang.reflect.Constructor 提供方法操作构造方法

成员变量,也会被看成一个对象,就有这个对象描述类,用于操作成员变量
java.lang.reflect.Field 提供方法操作造变量

成员方法,也会被看成一个对象,有这个对象描述类,用于操作成员方法
java.lang.reflect.Method 提供方法操作成员方法

反射:
  获取一个类的class文件对象  Class类型
  使用Class类中的方法解剖这个class文件
  
  获取出class文件中定义的所有成员,交给不同的对象,进行处理
  
  
  
Class类提供一些获取方法,从一个类的class文件中获取构造方法
  获取 所有的公共权限构造方法
    Constructor[] getConstructors() 返回构造方法对象
    Constructor getConstructor(Class...c) 返回指定的构造方法
   
Constructor 类中有一个方法,可以运行可以到的构造方法
    Object  newInstance(Object...obj)
            运行获取到的指定构造方法,但是传递相对应参数
            


获取成员变量
Class类提供获取方法,从一个类的class文件中获取成员变量

Field[] getFields()
Field   getField(字符串的变量名) 获取指定变量

Field类方法
void set(Object obj, Object value) 修改成员变量值


获取成员方法
  Class类提供获取方法,从一个类的class文件中获取成员方法
      自己的,继承,实现的 public权限
      
  Method[] getMethods()获取全部公共方法,包括继承的
  Method   getMethod(字符串方法名,Class...c)获取指定的方法
  
Method类方法
  invoke(Object obj, Object...o)运行获取到的方法
     对象,调用方法中实际传递的参数

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马