## 反射相关类 1. Class:类的模板,可以根据Class获取目标类的所有信息。 2. Field:字段/属性。 3. Constructor:构造函数。 4. Method:类中的方法。
## 获取Class的方式 1. 动态加载 ``` Class clz = Class.forName("com.demo.bean.User") ``` 2. 通过对象获取 ``` User zs = new User(); Class clz = zs.getClass(); ``` 3. 通过类获取 ``` Class clz = User.class; ```
## Class相关方法 | 方法名 | 描述 | 结果示例 | |:---|:---|:---| | getName() | 获取类的全名称。 | com.demo.bean.User | | getSimpleName() | 获取类名。 | User | | getFields() | 获取所有public的属性。 | public int com.bean.User.id | | getDeclaredFields() | 获取所有属性/字段。 | 所有public和private的属性和字段。 | | getMethods() | 获取所有public的方法。 | public void com.demo.bean.User.setId(int) | | getDeclaredMethods() | 获取所有方法。 | public void com.demo.bean.User.setId(int) | | getConstructors() | 获取public的无参构造函数。 | public User() | | getDeclaredConstructors() | 获取所有无参构造函数。 | | | getDeclaredConstructor() | 只获取无参构造,因为没有指定参数类型。| | | getDeclaredConstructor(int.class) | 只获取包含int的构造,因为指定了一个int的参数类型。| |

## Field字段 | 方法名 | 描述 | 结果示例 | |:---|:---|:---| | getName() | 获取字段的名称。 | name | | getType() | 获取字段的类型。 | int |
## Method方法 | 方法名 | 描述 | 结果示例 | |:---|:---|:---| | getName() | 获取方法名。| getName() | | getReturnType() | 获取方法的返回值类型。 | int |
| invoke() | 执行方法 得到返回值| |
## Constructor构造函数 | 方法名 | 描述 | 结果示例 | |:---|:---|:---| | 同上 | | | ##导包快捷键 alt+回车 #java基于注解权限管理
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄