别把反射当八股文背,先问自己会不会动态拆类
很多人学完 JavaSE 面向对象那部分,能写类、能 new 对象、能调方法,就以为基础过关了。可一旦遇到框架源码里那段没有 import 具体类名却能凭字符串创建对象的代码,就完全看不懂。这门课要解决的正是这种能力缺口:你缺的不是语法,而是对“运行期动态操作类结构”的理解。反射不是面试时背一句“运行期获取类信息”就行的概念,它是你之后看懂序列化、注解处理、依赖注入、ORM 映射的前置门槛。如果你现在只会写死类型的代码,遇到需求变更就改一堆 if-else,那么这门课就是来补这块短板的。
先搞清 Class 对象怎么拿,再谈构造、属性、方法三件套
这门课适合已经掌握 Java 基础语法、能独立写完面向对象小项目的学习者。如果你连继承、多态、构造器重载都还迷糊,建议先去补那部分,别硬看反射,否则你会觉得每一步都在变魔术。对于符合基础的人,建议按顺序先看前面四块内容:反射的概念、获取 Class 对象、通过 Class 对象实例化、以及使用练习。这四块是一条完整的逻辑链,告诉你程序运行时怎么把一个类本身当成数据来操作。看完这四块,你必须能独立回答几个问题:同一个类在内存里是不是只有一个 Class 对象?用反射拿到的实例和直接 new 出来的实例在内存层面有没有本质区别?为什么有时候非要用反射而不直接写死类型?想清楚这些,你的基础才算扎实。
搞清入口后,后面三块就是反射的核心操作:获取构造方法、获取属性、获取成员方法。这部分别光听,必须跟着敲。资料包里的练习线索不是让你背 API 方法名,而是让你验证边界:用反射调用私有构造方法会发生什么?怎么强行修改一个私有属性的值?调用一个带参数的方法时参数类型传错了会报什么错?自己把这些异常都触发一遍,你才算真正理解反射的控制力。学完这门课,你应该能独立写一个工具类:传入一个对象,自动遍历它的所有字段名和值并打印出来;或者给定一个类名字符串,动态加载并调用它的指定方法。做到这两点,你后续去看框架底层源码时,就不会在反射这层卡住。
课程目录
1 反射的概念 (18:29) 2 获取一个Class对象 (15:23) 3 获取一个Class对象所表示的类的对象 (08:55) 4 反射的使用练习 (08:29) 5 获取构造方法 (19:08) 6 获取属性 (24:26) 7 获取成员方法 (17:27)





