zoukankan      html  css  js  c++  java
  • 反射

    反射:框架设计的灵魂

    • 框架:半成品软件。可以在框架的基础上进行软件开发,简化编码。
    • 反射:将类的各个组成部分封装为其他对象,这就是反射机制。
      • 好处:
        • 可以在程序运行过程中,操作这些对象。
        • 可以解耦,提高程序的可扩展性。
    • 获取Class对象的方式:
      1. class.forName("全类名"):将字节码文件加载进内存,返回class对象
        1. 多用于配置文件,将类名定义在卑职文件中、读取文件,加载类。
      2. 类名.class:通过类名的属性来class获取
        1. 多用于参数的传递
      3. 对象.getClass():getClass()方法在Object类中定义着。
        1. 多用于对象的获取字节码的方式
    • 结论:
      • 同一个字节码文件(*.class)在一次程序运行过程中,只会被加载一次,不论通过哪一种方式获取的class对象都是同一个。

    获取字节码Class对象的三种方式

    • Class对象功能:
      • 获取功能:
        • 获取成员变量:
          • Field[] getFileds()
          • Field getField(String name)
          • Field[] getDeclareFields()
          • Field getDeclareField(String name)
        • 获取构造方法:
          • Constructor<?>[] getConstructors()
          • Constructor getConstructor(类<?>...parameterTypes)
          • Constructor getDeclaredConstructor(类<?>...parameterTypes)
          • Constructor<?>[] getDeclaredConstructors()
        • 获取成员方法:
          • Method[] getMethods()
          • Method getMethod(String name,类<?>...parameterTypes)
          • Method[] getDeclareMethods()
          • Method getDeclareMethod(String name,类<?>... parameterTypes)
        • 获取类名
          • String getName()
  • 相关阅读:
    Django ListView实现分页
    redis-pipeline
    MRO
    进程状态
    ORM基本操作回顾
    协程回顾
    线程的回顾
    multiprocessing- 基于进程的并行性
    Fix Curl client hung issue
    Curl request 'Expect: 100-Continue' Issues and Risks
  • 原文地址:https://www.cnblogs.com/Xiaoming0/p/14033548.html
Copyright © 2011-2022 走看看