Java反射机制:跟着代码学反射
微信搜索:码农StayUp 主页地址: https://gozhuyinglong.github.io 源码分享: https://github.com/gozhuyinglong/blog-demos 1. 前言 在OOP的世界里,万物皆对象。也就是说,我们可以将任何东西抽象成一个对象。 比如人,可以抽象成一个Person类,通过new Person()来实例化一个对象;再比如鸭子,可以抽象成一个Duck类,也可以对其进行实例化……那么这一个个类本身是不是也可以抽象成一个类呢?Java提供了一个特殊的类 Class ,用来描述类的内部信息,是反射的核心类。 下图是本篇讲述内容: 2. Java反射机制概述 Java反射(Reflection)允许应用程序在 运行时 借助于反射API,来获取所有类或接口的内部信息,并且能直接操作任意对象的内部属性及方法。反射机制的核心类为 java.lang.Class 。 类加载完后,会在堆内存的方法区中产生一个 Class 类型的对象。 Class 类没有公开的构造函数,是由类加载器的 defineClass 方法构造而成。所以 Class 对象不是“new”出来的,而是通过方法来获取的。 这个 Class 对象具有类的完整结构信息,并且一个类只有一个 Class 对象。 3. 获取Class对象 获取 Class 对象有以下四种方式: