std.reflect
功能介绍
reflect 包提供了反射功能,使得程序在运行时能够获取到各种实例的类型信息,并进行各种读写和调用操作。
本包暂不支持 macOS 平台。
注意:
- 对于全局信息仓颉的反射功能只能访问可见性为
public的全局变量和全局函数。- 对于当前所在包,仓颉的反射功能可以访问所有全局定义的类型,而对于外部导入的包或动态加载的模块,则只能访问其中可见性为
public的全局定义的类型。- 对于成员信息仓颉的反射功能只能访问类型内的可见性为
public的成员(实例/静态成员变量/属性/函数),使用非public修饰符修饰的或缺省修饰符的成员均是不可见的。- 目前,仓颉的反射功能尚不支持函数类型、元组类型、
enum类型。
API 列表
函数
| 函数名 | 功能 |
|---|---|
| parseParameterTypes(String) | 将字符串转换为包含具体类型信息的函数签名,以便 getStaticFunction 等函数使用。 |
类型别名
| 类型别名 | 功能 |
|---|---|
| Annotation | Object 的别名。 |
类
| 类名 | 功能 |
|---|---|
| ClassTypeInfo | 描述class类型的类型信息。 |
| ConstructorInfo | 描述构造函数信息。 |
| GenericTypeInfo | 描述泛型信息。 |
| GlobalFunctionInfo | 描述全局函数信息。 |
| GlobalVariableInfo | 描述全局变量信息。 |
| InstanceFunctionInfo | 描述实例成员函数信息。 |
| InstancePropertyInfo | 描述实例成员属性信息。 |
| InstanceVariableInfo | 描述实例成员变量信息。 |
| InterfaceTypeInfo | 描述interface类型的类型信息。 |
| PackageInfo | 描述包信息。 |
| ParameterInfo | 描述函数形参信息。 |
| PrimitiveTypeInfo | 描述原始数据类型的类型信息。 |
| StaticFunctionInfo | 描述静态成员函数信息。 |
| StaticPropertyInfo | 描述静态成员属性信息。 |
| StaticVariableInfo | 描述静态成员变量信息。 |
| StructTypeInfo | 描述struct类型的类型信息。 |
| TypeInfo | TypeInfo提供了所有数据类型通用的操作接口,支持用户进行反射操作。 |
枚举
| 枚举名 | 功能 |
|---|---|
| ModifierInfo | 描述修饰符信息。 |
异常类
| 异常类名 | 功能 |
|---|---|
| IllegalSetException | 表示对不可变类型进行更改异常。 |
| IllegalTypeException | 表示类型不匹配异常。 |
| InfoNotFoundException | 表示无法找到对应信息异常。 |
| InvocationTargetException | 表示调用函数包装异常。 |
| MisMatchException | 表示调用对应函数抛出异常。 |
| ReflectException | ReflectException 为 Reflect 包的基异常类。 |