zoukankan      html  css  js  c++  java
  • Java 反射

    反射
    放射定义在反射包中:java.lang.reflect包。
    反射机制:Java中动态获取类的信息的技术。

    扩展功能:
    1:使用多态:
    暴露接口,实现接口,new类调用方法,多态调用。
    2:使用反射:
    如果代码已经写好了,现在无法new类。使用反射。
    要运行的类不确定,配置文件配置类,解析配置文件,找到配置的类,反射加载、创建、调用。

    Class类:
    用于描述字节码文件的类。内部提供了获取类内的内容的的方法。
    放射就是依靠该类实现的。
    想要获取一个类的内容,获取该类的字节码文件对象。

    获取字节码文件对象:
    1:Object类中的getClass()方法。
    需要先有对象,然后调用getClass()方法。
    2:使用类的class属性。
    需要先知道类名,然后调用class属性。
    3:使用Class类中的 Class forName(String 全类名)方法。
    他会根据类名到ClassPath中找类。

    使用Class的对象获取类内容:
    构造对象:
    空参构造:
    使用Class类构造别的类实例通过:c.newInstance()相当于new Xxx();
    使用Class类构造实例只有这一个方法。
    有参构造:
    如果需要使用有参构造,通过获取并调用有参构造方法来实现。
    获取构造方法:
    getConstructor(Class<?>... parameterTypes)
    getConstructors()
    getDeclaredAnnotations()
    以上三个方法会返回一个Constructors对象。即构造方法对象。
    Constructors中有创建对象的方法。
    获取字段:
    Field[] getFields()
    Field getField(String name)
    Field getDeclaredField(String name)
    Field[] getDeclaredFields()
    返回一个Field对象。
    获取函数:
    Method[] getMethods()
    Method getMethod(String name, Class<?>... parameterTypes)
    返回一个Method对象
    使用Method中的Object invoke(Object obj, Object... args)方法调用
    obj是所属对象,args是参数列表。

    Constructors类:
    构造方法类,用于描述构造方法。
    Field类:
    字段类,用于描述字段。
    Method类:
    方法类,用于描述方法。
  • 相关阅读:
    How to alter department in PMS system
    Can't create new folder in windows7
    calculate fraction by oracle
    Long Wei information technology development Limited by Share Ltd interview summary.
    ORACLE BACKUP AND RECOVERY
    DESCRIBE:When you mouse click right-side is open an application and click left-side is attribution.
    ORACLE_TO_CHAR Function
    电脑BOIS设置
    JSP点击表头排序
    jsp+js实现可排序表格
  • 原文地址:https://www.cnblogs.com/Xmingzi/p/6635873.html
Copyright © 2011-2022 走看看