反射相关类

Posted wangshuang123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了反射相关类相关的知识,希望对你有一定的参考价值。

## 反射相关类
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基于注解权限管理

以上是关于反射相关类的主要内容,如果未能解决你的问题,请参考以下文章

Java集合与数据结构 反射枚举及Lambda表达式

Java集合与数据结构 反射枚举及Lambda表达式

JAVA 反射枚举 Lambda 表达式详解

JAVA 反射枚举 Lambda 表达式详解

Java 基础语法详解 Java 的反射

Java 基础语法详解 Java 的反射