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

    所谓反射(Refection),其实就是程序自己能够检查自身信息,就像程序会通过镜子反光来看自己本身一样。反射使得 Java语言具有了“动态性”,即程序首先会检查某个类中的方法、属性等信息,然后再动态地调用或创建该类或该类的对象

    一、反射的基石——Class类

        Class类用来描述Java中的一切事物,该类描述了类名字、类的访问属性、类所属的包名、字段名称的列表、方法名称的列表。例如Class类的getName()方法可以获取所描述类的类名
        Class实例代表内存中的一份字节码,所谓字节码就是当Java虚拟机加载某个类的对象时,首先需要把硬盘上该类的二进制源码编译成class文件的二进制代码(字节码),然后把class文件的字节码加载到内存中,之后再创建该类的对象


    二、反射的基本应用

        所谓反射就是把Java类中的各种成分隐射成相应的Java类。通过反射,在具体编写程序时,不仅可以动态地生成某个类中所需要的成员,而且还能动态地调用相应的成员。查看API帮助文档可以发现,不仅一个Java类可以用Class类的对象表示,而且Java类的各种成员,如成员变量、方法、构造方法、包等,也可以用相应的Java类表示
        反射一般会设计如下类:Class(表示一个类的类),Field(表示属性的类),Method(表示方法的类)和Construct(表示构造方法的类)。那么如何获取这些类(除了Class类)的对象呢?通过查看API帮助文档可以发现,Class类存在一系列的方法,来获取相关类中的变量、方法、构造方法、包等信息。
    ---------------------
    作者:弹指间
    来源:CSDN
    原文:https://blog.csdn.net/chenyonken/article/details/80868936
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    JS-两个空数组为什么不相等?
    ES6---箭头函数()=>{} 与function的区别(转载)
    SASS用法指南
    scss/less语法以及在vue项目中的使用(转载)
    基于vue+mint-ui的mobile-h5的项目说明
    vue中mint-ui的filed的与blur事件结合实现检查用户输入是否正确
    Carrierwave 如何配置合理的上传文件名(转自李华顺)
    ruby大神与菜鸟的代码区别
    用imageMagick合成图片添加图片水印
    想做喜欢的安卓应用
  • 原文地址:https://www.cnblogs.com/feng9exe/p/9959092.html
Copyright © 2011-2022 走看看