379 Java的反射机制:运行时获取类信息
你有没有遇到过这种情况:别人给了你一个Jar包,里面有一堆类,但完全没有文档,你完全不知道怎么用?或者你在写框架的时候,想让代码"自己看自己",在运行时动态获取某个类有哪些方法、属性?
这听起来很魔幻,但在Java世界里,这有一个正式的名字——反射(Reflection)。
今天我们就来聊聊这个Java里的"透视眼"。
一、反射到底是什么?
1.1 用大白话说反射
想象你收到一个密封的盒子,不知道里面装了什么。你有三个办法:
- 直接打开看:这是正常访问,你知道盒子里有什么
- 用X光扫描:你不知道里面具体装了什么,但你能"看到"里面有什么东西的结构
- 问卖盒子的人:这是看文档
反射就像那个X光机——你可以在运行时"扫描"一个类,知道它有哪些字段、方法、构造函数,甚至可以动态调用方法。
1.2 反射能做什么?
| 能力 | 说明 |
|---|---|
| 获取类信息 | 知道一个类有哪些方法、字段、构造器 | <