Java-反射机制

来源:互联网 发布:教学资源管理库软件 编辑:程序博客网 时间:2024/06/16 11:09
  1. 概念
    Java允许其程序在运行期间动态调用事先未知或不确定的数据类型,这种机制称为反射,即反射就是加载类,并解剖出类中的各个部分。

  2. 应用
    struts、spring、hibernate等主流框架中。

  3. 功能
    1)运行判断Java对象的类型
    2)动态加载编译时不确定的Java类
    3)动态解析编译时不确定的Java类,进而操作该类及其实例,包括创建队形,访问属性和方法。

  4. 加载类的三种方式
    1)Class c=Class.forName(“”);
    2)Person p=new Person();
    Class c=p.getClass();
    3) Class c=Person.class;

  5. 解剖类
    如果是公有成员,则用getConstructor,getMethod,getField即可,如果是私有成员,则用getDeclaredConstructor,getDeclaredMethod,getDeclaredField。

    6.反射构造函数
    1)加载类
    Class clazz=Class.forName(“包名.类名”);
    2)获取构造函数
    Constructor c=clazz. getConstructor(String.class);
    3)实例化一个对象
    Person p=(Person)c.newInstance(“张三”);

  6. 反射方法
    1)加载类
    2)获取方法
    Method method=clazz.getMethod(“aa”,String.class);
    3)执行方法
    method.invoke(new Person(),”zhangsan”);

  7. 反射字段
    1)加载类
    2)获取字段
    Field f=clazz.getField(“name”);
    获取字段的值
    Object o=f.get(new Person());
    获取字段的类型
    Class type=f.getType();


本文只是简单的总结了反射的内容,希望大家提出宝贵意见。后续还会有其他关于java的内容更新~

0 0
原创粉丝点击