zoukankan      html  css  js  c++  java
  • 反射

    反射

    通过反射,我们可以在运行的时候就动态的获取对象的类,方法等信息,而不用事先在编译器或者写代码的时候告诉JVM这个对象是什么类的,就比如泛型。
    反射的功能主要有:

    • 在运行时判断任意一个对象所属的类;
    • 在运行时判断任意一个类所具有的成员变量和方法;
    • 在运行时构造任意一个类的对象;
    • 在运行时调用任意一个对象的方法

    java的反射操作主要是用到了java.lang.Class类和java.lang.reflect反射包下的类。
    Class类是说有类的基类,在Class内,有一个Class方法,但是这个方法只要JVM能调用,除了ClassLoad外,还提供几种方法可以动态创建类,比如getClass(),class.forName();
    就比如说forName()这个方法,他又调用了Reflection.getCallerClass(),然后返回一个传入值的对象的类。

            public static Class<?> forName(String className)
                    throws ClassNotFoundException {
            Class<?> caller = Reflection.getCallerClass();
            return forName0(className, true, ClassLoader.getClassLoader(caller), caller);
        }
    

    在class中有一个ReflectionData一个类,他用来缓存各种各种的派生类和类名。

    个人小站:http://jun10ng.work/ 拥抱变化,时刻斗争,走出舒适圈。
  • 相关阅读:
    检测一个对象方法是否存在
    非堵塞 延迟脚本 高性能
    移动开发 相关 备忘
    元素透明 渐变函数
    cookie
    media query 单位
    前端入门可参考《如何教会非计算机专业的女友写代码》
    JQ判断复选框是否选中
    聊天记录
    JS获取文本值
  • 原文地址:https://www.cnblogs.com/Jun10ng/p/12449681.html
Copyright © 2011-2022 走看看