1. 反射的定义、用途 2. 反射的常用类和方法
时间: 2024-04-19 11:23:30 浏览: 19
1. 反射的定义:反射是指在运行时动态地获取和操作类的信息的能力。通过反射,我们可以在运行时获取类的属性、方法和构造函数等信息,并且可以动态地调用这些方法和访问这些属性。
反射的用途:
- 动态加载类:在运行时根据某些条件动态地加载和使用类。
- 动态获取类的信息:可以获取类的属性、方法和构造函数等信息。
- 动态调用方法:可以在运行时根据方法名动态地调用类的方法。
- 动态修改属性:可以在运行时获取和设置类的属性值。
- 实现通用框架和工具:反射使得我们可以编写更通用、灵活的代码,例如自动化测试框架、ORM(对象关系映射)框架等。
2. 反射的常用类和方法:
- Class 类:表示一个类或接口,在反射中经常使用该类来获取类的信息。
- Class.forName(String className):根据类名动态加载类,并返回对应的 Class 对象。
- getClass():返回对象的 Class 对象。
- Constructor 类:表示类的构造函数。
- getConstructors():返回类的所有公共构造函数。
- newInstance(Object... initargs):通过构造函数创建类的对象。
- Field 类:表示类的属性。
- getFields():返回类所有公共属性。
- getField(String name):根据属性名获取指定的公共属性。
- getDeclaredFields():返回类所有属性,包括私有属性。
- getDeclaredField(String name):根据属性名获取指定的属性,包括私有属性。
- Method 类:表示类的方法。
- getMethods():返回类的所有公共方法。
- getMethod(String name, Class<?>... parameterTypes):根据方法名和参数类型获取指定的公共方法。
- getDeclaredMethods():返回类的所有方法,包括私有方法。
- getDeclaredMethod(String name, Class<?>... parameterTypes):根据方法名和参数类型获取指定的方法,包括私有方法。
这些类和方法是反射中常用的工具,通过它们可以实现对类的动态加载、属性访问、方法调用等操作。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)