std.reflect

功能介绍

reflect 包提供了反射功能,使得程序在运行时能够获取到各种实例的类型信息,并进行各种读写和调用操作。

注意:

  • 不支持平台:macOS、iOS。
  • 对于全局信息仓颉的反射功能只能访问可见性为 public 的全局变量和全局函数。
  • 对于当前所在包,仓颉的反射功能可以访问所有全局定义的类型,而对于外部导入的包或动态加载的模块,则只能访问其中可见性为 public 的全局定义的类型。
  • 对于成员信息仓颉的反射功能只能访问类型内的可见性为 public 的成员(实例/静态成员变量/属性/函数),使用非 public 修饰符修饰的或缺省修饰符的成员均是不可见的。

API 列表

函数

函数名 功能
parseParameterTypes(String) 将字符串转换为包含具体类型信息的函数签名,以便 getStaticFunction 等函数使用。

类型别名

类型别名 功能
Annotation Object 的别名。

类名 功能
ClassTypeInfo 描述 class 类型的类型信息。
ConstructorInfo 描述构造函数信息。
EnumConstructorTypeInfo 描述 enum 的构造子信息。
EnumTypeInfo 描述 enum 类型信息。
FunctionTypeInfo 描述函数类型信息。
GenericTypeInfo 描述泛型信息。
GlobalFunctionInfo 描述全局函数信息。
GlobalVariableInfo 描述全局变量信息。
InstanceFunctionInfo 描述实例成员函数信息。
InstancePropertyInfo 描述实例成员属性信息。
InstanceVariableInfo 描述实例成员变量信息。
InterfaceTypeInfo 描述 interface 类型的类型信息。
PackageInfo 描述包信息。
ParameterInfo 描述函数形参信息。
PrimitiveTypeInfo 描述原始数据类型的类型信息。
StaticFunctionInfo 描述静态成员函数信息。
StaticPropertyInfo 描述静态成员属性信息。
StaticVariableInfo 描述静态成员变量信息。
StructTypeInfo 描述 struct 类型的类型信息。
TupleTypeInfo 描述 tuple 类型信息。
TypeInfo TypeInfo 提供了所有数据类型通用的操作接口,支持用户进行反射操作。

枚举

枚举名 功能
ModifierInfo 描述修饰符信息。

异常类

异常类名 功能
IllegalSetException 表示对不可变类型进行更改异常。
IllegalTypeException 表示类型不匹配异常。
InfoNotFoundException 表示无法找到对应信息异常。
InvocationTargetException 表示调用函数包装异常。
MisMatchException 表示调用对应函数抛出异常。
ReflectException ReflectException 为 Reflect 包的基异常类。