反射相关类

## 反射相关类
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基于注解权限管理
posted @ 2019-04-26 19:20  又又IT  阅读(420)  评论(0编辑  收藏  举报