类
class ClassTypeInfo
public class ClassTypeInfo <: TypeInfo
功能:描述 class 类型的类型信息。
父类型:
prop constructors
public prop constructors: Collection<ConstructorInfo>
功能:获取该 ClassTypeInfo 对应的 class 的所有 public 构造函数信息,返回对应集合。
注意:
- 如果该
 class类型无任何public构造函数,则返回空集合。- 该集合不保证遍历顺序恒定。
 
类型:Collection<ConstructorInfo>
prop instanceVariables
public prop instanceVariables: Collection<InstanceVariableInfo>
功能:获取该 ClassTypeInfo 对应的 class 的所有 public 实例成员变量信息,返回对应集合。
注意:
- 如果该
 class类型无任何public实例成员变量,则返回空集合。- 该集合不保证遍历顺序恒定。
 - 该集合不包含任何继承而来的
 public实例成员变量。
类型:Collection<InstanceVariableInfo>
prop sealedSubclasses
public prop sealedSubclasses: Collection<ClassTypeInfo>
功能:如果该 ClassTypeInfo 对应的 class 类型拥有 sealed 语义,则获取该 class 类型所在包内的所有子类的类型信息,返回对应集合。
注意:
- 如果该
 class类型不拥有sealed语义,则返回空集合。- 如果该
 class类型拥有sealed语义,那么获得的集合必不可能是空集合,因为该class类型本身就是自己的子类。
prop staticVariables
public prop staticVariables: Collection<StaticVariableInfo>
功能:获取该 ClassTypeInfo 对应的 class 的所有 public 静态成员变量信息,返回对应集合。
注意:
- 如果该
 class类型无任何public静态成员变量,则返回空集合。- 该集合不保证遍历顺序恒定。
 - 该集合不包含任何继承而来的
 public静态成员变量。
类型:Collection<StaticVariableInfo>
prop superClass
public prop superClass: Option<ClassTypeInfo>
功能:获取该 class 类型信息所对应的 class 类型的直接父类。
注意:
理论上只有 class Object 没有直接父类。
类型:Option<ClassTypeInfo>
func construct(Array<Any>)
public func construct(args: Array<Any>): Any
功能:在该 ClassTypeInfo 对应的 class 类型中根据实参列表搜索匹配的构造函数并调用,传入实参列表,返回调用结果。
参数:
返回值:
- Any - 该 
class类型的实例。 
异常:
- IllegalTypeException - 如果该 
class类型拥有abstract语义,调用construct则抛出异常,因为抽象类不可被实例化。 - MisMatchException - 如果 
args未能成功匹配任何该class类型的可见性为public的构造函数,则抛出异常。 - InvocationTargetException - 在被调用的构造函数内部抛出的任何异常均将被封装为 InvocationTargetException 异常并抛出。
 
func getConstructor(Array<TypeInfo>)
public func getConstructor(parameterTypes: Array<TypeInfo>): ConstructorInfo
功能:尝试在该 ClassTypeInfo 对应的 class 类型中获取与给定形参类型信息列表匹配的 public 构造函数的信息。
参数:
返回值:
- ConstructorInfo - 如果成功匹配则返回该 
public构造函数的信息。 
异常:
- InfoNotFoundException - 如果没找到对应 
public构造函数,则抛出异常。 
func getInstanceVariable(String)
public func getInstanceVariable(name: String): InstanceVariableInfo
功能:给定变量名称,尝试获取该 ClassTypeInfo 所对应的 class 类型中匹配的实例成员变量的信息。
参数:
- name: String - 变量名称。
 
返回值:
- InstanceVariableInfo - 如果成功匹配则返回该实例成员变量的信息。
 
异常:
- InfoNotFoundException - 如果没找到对应实例成员变量,则抛出异常。
 
func getStaticVariable(String)
public func getStaticVariable(name: String): StaticVariableInfo
功能:给定变量名称,尝试获取该 ClassTypeInfo 所对应的 class 类型中匹配的静态成员变量的信息。
参数:
- name: String - 变量名称。
 
返回值:
- StaticVariableInfo - 如果成功匹配则返回该静态成员变量的信息。
 
异常:
- InfoNotFoundException - 如果没找到对应静态成员变量,则抛出异常。
 
func isAbstract()
public func isAbstract(): Bool
功能:判断该 ClassTypeInfo 对应的 class 类型是否是抽象类。
返回值:
- Bool - 如果该 ClassTypeInfo 对应的 
class类型是抽象类则返回true,否则返回false。 
func isOpen()
public func isOpen(): Bool
功能:判断该 ClassTypeInfo 对应的 class 类型是否拥有 open 语义。
注意:
并不是只有被
open修饰符所修饰的class类型定义才拥有open语义,如:abstract class无论是否被open修饰符修饰都会拥有open语义。
返回值:
- Bool - 如果该 ClassTypeInfo 对应的 
class类型拥有open语义则返回true,否则返回false。 
func isSealed()
public func isSealed(): Bool
功能:判断该 ClassTypeInfo 对应的 class 类型是否拥有 sealed 语义。
返回值:
- Bool - 如果该 ClassTypeInfo 对应的 
class类型拥有sealed语义则返回true,否则返回false。 
static func get(String)
public redef static func get(qualifiedName: String): ClassTypeInfo
功能:获取给定限定名称所对应类型的 ClassTypeInfo。
参数:
- qualifiedName: String - 类型的限定名称。
 
返回值:
- ClassTypeInfo - 类型的限定名称 
qualifiedName所对应的类型的类型信息。 
异常:
- InfoNotFoundException - 如果无法获取与给定类型的限定名称 
qualifiedName匹配的类型所对应的类型信息,则抛出异常。 - IllegalTypeException - 如果获取到的类型信息不是 ClassTypeInfo, 则抛出异常。
 
static func of(Any)
public redef static func of(a: Any): ClassTypeInfo
功能:获取给定的任意类型的实例的运行时类型所对应的类型信息。
运行时类型是指在程序运行时,通过动态绑定确定的类型,运行时类型与实例对象相绑定。在继承等场景下运行时类型和静态类型可能不一致。
参数:
- a: Any - 任意类型的实例。
 
返回值:
- ClassTypeInfo - 实例 
a的运行时类型所对应的类型信息。 
异常:
- InfoNotFoundException - 如果无法获得实例 
a的运行时类型所对应的类型信息,则抛出异常。 - IllegalTypeException - 如果获取到的类型信息不是 ClassTypeInfo, 则抛出异常。
 
static func of(Object)
public static func of(a: Object): ClassTypeInfo
功能:获取给定的 class 类型的实例的运行时类型所对应的 class 类型信息。
参数:
- a: Object - 
class类型的实例。 
返回值:
- ClassTypeInfo - 
class类型的实例a的运行时类型所对应的class类型信息。 
异常:
- InfoNotFoundException - 如果无法获得实例 
a的运行时类型所对应的class类型信息,则抛出异常。 
static func of<T>()
public redef static func of<T>(): ClassTypeInfo
功能:获取给定类型 T 对应的类型信息。
返回值:
- ClassTypeInfo - 
T类型对应的类型信息。 
异常:
- InfoNotFoundException - 如果无法获得类型 T 所对应的类型信息,抛出异常。
 - IllegalTypeException - 如果获取到的类型信息不是 ClassTypeInfo, 则抛出异常。
 
class ConstructorInfo
public class ConstructorInfo <: Equatable<ConstructorInfo> & Hashable & ToString
功能:描述构造函数信息。
父类型:
prop annotations
public prop annotations: Collection<Annotation>
功能:获取所有作用于该 ConstructorInfo 对应的构造函数的注解,返回对应集合。
注意:
- 如果无任何注解作用于该构造函数信息所对应的构造函数,则返回空集合。
 - 该集合不保证遍历顺序恒定。
 
类型:Collection<Annotation>
prop parameters
public prop parameters: ReadOnlyList<ParameterInfo>
功能:获取该 ConstructorInfo 所对应的构造函数的参数类型列表。
注意:
不保证参数顺序,可根据
ParameterInfo的index属性确定参数实际位置。
类型:ReadOnlyList<ParameterInfo>
func apply(Array<Any>)
public func apply(args: Array<Any>): Any
功能:调用该 ConstructorInfo 对应的构造函数,传入实参列表,并返回调用结果。
注意:
- 目前,
 struct类型中定义的构造函数不支持被调用。
参数:
返回值:
- Any - 由该构造函数构造得到的类型实例。
 
异常:
- InvocationTargetException - 如果该构造函数信息所对应的构造函数所属的类型是抽象类,则会抛出异常。
 - IllegalArgumentException - 如果实参列表 
args中的实参的数目与该构造函数信息所对应的构造函数的形参列表中的形参的数目不等,则抛出异常。 - IllegalTypeException - 如果实参列表 
args中的任何一个实参的运行时类型不是该构造函数信息所对应的构造函数的对应形参的声明类型的子类型,则抛出异常。 - Exception - 如果被调用的构造函数信息所对应的构造函数内部抛出异常,则该异常将被封装为 Exception 异常并抛出。
 
func findAnnotation<T>() where T <: Annotation
public func findAnnotation<T>(): Option<T> where T <: Annotation
功能:尝试获取作用于该 ConstructorInfo 对应的构造函数且拥有给定限定名称的注解。
返回值:
- Option<T> - 如果成功匹配则返回该注解,否则返回 
None。 
func hashCode()
public func hashCode(): Int64
功能:获取该构造器信息的哈希值。
返回值:
- Int64 - 该构造器信息的哈希值。
 
func toString()
public func toString(): String
功能:获取字符串形式的该构造函数信息。
返回值:
- String - 字符串形式的该构造函数信息。
 
operator func !=(ConstructorInfo)
public operator func !=(that: ConstructorInfo): Bool
功能:判断该构造器信息与给定的另一个构造器信息是否不等。
参数:
- that: ConstructorInfo - 被比较相等性的另一个构造器信息。
 
返回值:
- Bool - 如果该构造器信息与 
that不等则返回true,否则返回false。 
operator func ==(ConstructorInfo)
public operator func ==(that: ConstructorInfo): Bool
功能:判断该构造器信息与给定的另一个构造器信息是否相等。
参数:
- that: ConstructorInfo - 被比较相等性的另一个构造器信息。
 
返回值:
- Bool - 如果该构造器信息与 
that相等则返回true,否则返回false。 
class GenericTypeInfo
public class GenericTypeInfo <: TypeInfo & Equatable<GenericTypeInfo>
功能:描述泛型类型信息。
父类型:
operator func ==(GenericTypeInfo)
public operator func ==(that: GenericTypeInfo): Bool
功能:判断该泛型类型信息与给定的另一个泛型类型信息是否相等。
参数:
- that: GenericTypeInfo - 被比较相等性的另一个泛型类型信息。
 
返回值:
- Bool - 如果该泛型类型信息与 
that相等则返回true,否则返回false。 
class GlobalFunctionInfo
public class GlobalFunctionInfo <: Equatable<GlobalFunctionInfo> & Hashable & ToString
功能:描述全局函数信息。
父类型:
prop annotations
public prop annotations: Collection<Annotation>
功能:获取所有GlobalFunctionInfo 对应的全局函数的注解,返回对应集合。
注意:
- 如果无任何注解作用于该全局函数信息所对应全局函数,则返回空集合。
 - 该集合不保证遍历顺序恒定。
 
类型:Collection<Annotation>
prop genericParams
public prop genericParams: Collection<GenericTypeInfo>
功能:获取该 GlobalFunctionInfo 对应的实例成员函数的泛型参数信息列表。
类型:Collection<GenericTypeInfo>
异常:InfoNotFoundException - GlobalFunctionInfo 没有泛型参数时抛出异常。
prop name
public prop name: String
功能:获取该 GlobalFunctionInfo 对应的全局函数的名称。
注意:
构成重载的所有全局函数将拥有相同的名称。
类型:String
prop parameters
public prop parameters: ReadOnlyList<ParameterInfo>
功能:获取该 GlobalFunctionInfo 对应的全局函数的参数信息列表。
注意:
不保证参数顺序,可根据
ParameterInfo的index属性确定参数实际位置。
类型:ReadOnlyList<ParameterInfo>
prop returnType
public prop returnType: TypeInfo
功能:获取该 GlobalFunctionInfo 对应的全局函数的返回类型的类型信息。
类型:TypeInfo
func apply(Array<Any>)
public func apply(args: Array<Any>): Any
功能:调用该 GlobalFunctionInfo 对应的全局函数,传入实参列表,返回调用结果。
注意:
args的类型确保和函数入参类型完全一致,否则会导致参数检查失败。
参数:
返回值:
- Any - 该全局函数的调用结果。
 
异常:
- InvocationTargetException - 如果存在泛型参数的函数调用了该方法,则抛出异常。
 - IllegalArgumentException - 如果实参列表 
args中的实参的数目与该全局函数信息GlobalFunctionInfo所对应的全局函数的形参列表中的形参的数目不等,则抛出异常。 - IllegalTypeException - 如果实参列表 
args中的任何一个实参的运行时类型不是该全局函数信息所对应的全局函数的对应形参的声明类型的子类型,则抛出异常。 - Exception - 如果被调用的全局函数信息所对应全局函数内部抛出异常,则该异常将被封装为 Exception 异常并抛出。
 
func apply(Array<TypeInfo>, Array<Any>)
public func apply(genericTypeArgs: Array<TypeInfo>, args: Array<Any>): Any
功能:调用该 GlobalFunctionInfo 对应的全局泛型函数,传入泛型参数类型列表和实参列表,返回调用结果。
注意:
args的类型确保和函数入参类型完全一致,否则会导致参数检查失败。
参数:
返回值:
- Any - 该全局函数的调用结果。
 
异常:
- InvocationTargetException - 如果非泛型函数调用了该方法,则抛出异常。
 - IllegalArgumentException - 如果实参列表 
args中的实参的数目与该全局函数信息GlobalFunctionInfo所对应的全局函数的形参列表中的形参的数目不等,则抛出异常。 - IllegalArgumentException - 如果函数泛型参数列表 
genericTypeArgs中的参数数目与该全局函数信息所对应的全局函数的泛型参数列表genericParams中的参数数目不等,则抛出异常。 - IllegalTypeException - 如果实参列表 
args中的任何一个实参的运行时类型不是该全局函数信息所对应的全局函数的对应形参的声明类型的子类型,则抛出异常。 - IllegalTypeException - 如果传入的参数列表 
args和泛型参数类型列表genericTypeArgs不满足该全局函数信息所对应的全局函数的参数的类型约束,则抛出异常。 - Exception - 如果被调用的全局函数信息所对应全局函数内部抛出异常,则该异常将被封装为 Exception 异常并抛出。
 
func findAnnotation<T>() where T <: Annotation
public func findAnnotation<T>(): Option<T> where T <: Annotation
功能:尝试获取作用于该 GlobalFunctionInfo 对应的全局函数且拥有给定限定名称的注解。
返回值:
- Option<T> - 如果成功匹配则返回该注解,否则返回 
None。 
func hashCode()
public func hashCode(): Int64
功能:获取该全局函数信息的哈希值。
返回值:
- Int64 - 该全局函数信息的哈希值。
 
func toString()
public func toString(): String
功能:获取字符串形式的该全局函数信息。
返回值:
- String - 字符串形式的该全局函数信息。
 
operator func ==(GlobalFunctionInfo)
public operator func ==(that: GlobalFunctionInfo): Bool
功能:判断该全局函数信息与给定的另一个全局函数信息是否相等。
参数:
- that: GlobalFunctionInfo - 被比较相等性的另一个全局函数信息。
 
返回值:
- Bool - 如果该全局函数信息与 
that相等则返回true,否则返回false。 
operator func !=(GlobalFunctionInfo)
public operator func !=(that: GlobalFunctionInfo): Bool
功能:判断该全局函数信息与给定的另一个全局函数信息是否不等。
参数:
- that: GlobalFunctionInfo - 被比较相等性的另一个全局函数信息。
 
返回值:
- Bool - 如果该全局函数信息与 
that不等则返回true,否则返回false。 
class GlobalVariableInfo
public class GlobalVariableInfo <: Equatable<GlobalVariableInfo> & Hashable & ToString
功能:描述全局变量信息。
父类型:
prop annotations
public prop annotations: Collection<Annotation>
功能:获取所有作用于该 GlobalVariableInfo 对应的全局变量的注解,返回对应集合。
注意:
- 如果无任何注解作用于该全局变量信息所对应的全局变量,则返回空集合。
 - 该集合不保证遍历顺序恒定。
 
类型:Collection<Annotation>
prop name
public prop name: String
功能:获取该 GlobalVariableInfo 对应的全局变量的名称。
类型:String
prop typeInfo
public prop typeInfo: TypeInfo
功能:获取该 GlobalVariableInfo 对应的全局变量的声明类型的类型信息。
类型:TypeInfo
func findAnnotation<T>() where T <: Annotation
public func findAnnotation<T>(): Option<T> where T <: Annotation
功能:尝试获取作用于该 GlobalVariableInfo 对应的全局变量且拥有给定限定名称的注解。
返回值:
- Option<T> - 如果成功匹配则返回该注解,否则返回 
None。 
func getValue()
public func getValue(): Any
功能:获取该 GlobalVariableInfo 对应的全局变量的值。
返回值:
- Any - 该全局变量的值。
 
func hashCode()
public func hashCode(): Int64
功能:获取该全局变量信息的哈希值。
返回值:
- Int64 - 该全局变量信息的哈希值。
 
func isMutable()
public func isMutable(): Bool
功能:判断该 GlobalVariableInfo 对应的全局变量是否可修改。
注意:
- 如果实例成员变量被
 var修饰符所修饰,则该全局变量可被修改。- 如果实例成员变量被
 let修饰符所修饰,则该全局变量不可被修改。- 任何类型为
 struct的全局变量均不可修改。
返回值:
- Bool - 如果该全局变量可被修改则返回 
true,否则返回false。 
func setValue(Any)
public func setValue(newValue: Any): Unit
功能:设置该 GlobalVariableInfo 对应的全局变量的值。
参数:
- newValue: Any - 新的值。
 
异常:
- IllegalSetException - 如果该全局变量信息所对应的全局变量不可修改,则抛出异常。
 - IllegalTypeException - 如果新值 
newValue的运行时类型不是全局变量信息所对应的全局变量的声明类型的子类型,则抛出异常。 
func toString()
public func toString(): String
功能:获取字符串形式的该全局变量信息。
返回值:
- String - 字符串形式的该全局变量信息。
 
operator func ==(GlobalVariableInfo)
public operator func ==(that: GlobalVariableInfo): Bool
功能:判断该全局变量信息与给定的另一个全局变量信息是否相等。
参数:
- that: GlobalVariableInfo - 被比较相等性的另一个全局变量信息。
 
返回值:
- Bool - 如果该全局变量信息与 
that相等则返回true,否则返回false。 
operator func !=(GlobalVariableInfo)
public operator func !=(that: GlobalVariableInfo): Bool
功能:判断该全局变量信息与给定的另一个全局变量信息是否不等。
参数:
- that: GlobalVariableInfo - 被比较相等性的另一个全局变量信息。
 
返回值:
- Bool - 如果该全局变量信息与 
that不等则返回true,否则返回false。 
class InstanceFunctionInfo
public class InstanceFunctionInfo <: Equatable<InstanceFunctionInfo> & Hashable & ToString
功能:描述实例成员函数信息。
父类型:
prop annotations
public prop annotations: Collection<Annotation>
功能:获取所有作用于该 InstanceFunctionInfo 对应的实例成员函数的注解,返回对应集合。
注意:
- 如果无任何注解作用于该实例成员函数信息所对应的实例成员函数,则返回空集合。
 - 该集合不保证遍历顺序恒定。
 
类型:Collection<Annotation>
prop genericParams
public prop genericParams: Collection<GenericTypeInfo>
功能:获取该 InstanceFunctionInfo 对应的实例成员函数的泛型参数信息列表。
类型:Collection<GenericTypeInfo>
异常:InfoNotFoundException - GlobalFunctionInfo 没有泛型参数时抛出异常。
prop modifiers
public prop modifiers: Collection<ModifierInfo>
功能:获取该 InstanceFunctionInfo 对应的实例成员函数所拥有的所有修饰符的信息,返回对应集合。
注意:
- 如果该实例成员函数无任何修饰符,则返回空集合。
 - 该集合不保证遍历顺序恒定。
 - 即便未被某修饰符修饰,如果拥有该修饰符的语义,该修饰符信息也将被包括在该集合中。
 
prop name
public prop name: String
功能:获取该 InstanceFunctionInfo 对应的实例成员函数的名称。
注意:
- 构成重载的所有实例成员函数将拥有相同的名称。
 - 操作符重载函数的名称就是该操作符本身的符号内容,如"
 +","*","[]"。
类型:String
prop parameters
public prop parameters: ReadOnlyList<ParameterInfo>
功能:获取该 InstanceFunctionInfo 对应的实例成员函数的参数信息列表。
说明:
不保证参数顺序,可根据
ParameterInfo的index属性确定参数实际位置。
类型:ReadOnlyList<ParameterInfo>
prop returnType
public prop returnType: TypeInfo
功能:获取该 InstanceFunctionInfo 对应的实例成员函数的返回值类型的类型信息。
类型:TypeInfo
func apply(Any, Array<Any>)
public func apply(instance: Any, args: Array<Any>): Any
功能:调用该 InstanceFunctionInfo 对应实例成员函数,指定实例并传入实参列表,返回调用结果。
注意:
args的类型确保和函数入参类型完全一致。
参数:
返回值:
- Any - 该实例成员函数的调用结果。
 
异常:
- InvocationTargetException - 如果存在泛型参数的函数调用了该方法,则抛出异常。
 - InvocationTargetException - 如果该实例成员函数信息所对应的实例成员函数是抽象的,或不存在相应的函数实现,则抛出异常。
 - IllegalArgumentException - 如果实参列表 
args中的实参的数目与该实例成员函数信息所对应的实例成员函数的形参列表中的形参的数目不等,则抛出异常。 - IllegalTypeException - 如果实例 
instance的运行时类型与该实例成员函数信息所对应的实例成员函数所属的类型不相同,则抛出异常。 - IllegalTypeException - 如果实参列表 
args中的任何一个实参的运行时类型不是该实例成员函数信息所对应的实例成员函数的对应形参的声明类型的子类型,则抛出异常。 - Exception - 如果被调用的实例成员函数信息所对应的实例成员函数内部抛出异常,则该异常将被封装为 Exception 异常并抛出。
 
func apply(Any, Array<TypeInfo>, Array<Any>)
public func apply(instance: Any, genericTypeArgs: Array<TypeInfo>, args: Array<Any>): Any
功能:调用该 InstanceFunctionInfo 对应泛型成员函数,指定实例并传入泛型参数的类型列表和参数列表,返回调用结果。
注意:
args的类型确保和函数入参类型完全一致。
参数:
返回值:
- Any - 该实例泛型函数的调用结果。
 
异常:
- InvocationTargetException - 如果该函数信息对应的成员函数是 
abstract或不存在函数体,则会抛出异常。 - InvacationTargetException - 如果非泛型函数调用了此方法,则抛出异常。
 - IllegalTypeException - 如果实例 
instance的运行时类型与该成员函数信息所对应的成员函数所属的类型不相同,则抛出异常。 - IllegalArgumentException - 如果实参列表 
args中的实参的数目与该成员函数信息所对应的成员函数的形参列表中的形参的数目不等,则抛出异常。 - IllegalArgumentException - 如果函数泛型参数列表 
genericTypeArgs中的参数数目与该成员函数信息所对应的成员函数的泛型参数列表genericParams中的参数数目不等,则抛出异常。 - IllegalTypeException - 如果参数列表 
args中的任何一个参数的运行时类型不是该实例成员函数信息所对应的实例成员函数的对应形参的声明类型的子类型,则抛出异常。 - IllegalTypeException - 如果传入的参数列表 
args和泛型参数类型列表genericTypeArgs不满足该成员函数信息所对应的成员函数的参数的类型约束,则抛出异常。 - Exception - 如果被调用的实例成员函数信息所对应的实例成员函数内部抛出异常,则该异常将被封装为 Exception 异常并抛出。
 
func findAnnotation<T>() where T <: Annotation
public func findAnnotation<T>(): Option<T> where T <: Annotation
功能:尝试获取作用于该 InstanceFunctionInfo 对应的实例成员函数且拥有给定限定名称的注解。
返回值:
- Option<T> - 如果成功匹配则返回该注解,否则返回 
None。 
func hashCode()
public func hashCode(): Int64
功能:获取该实例成员函数信息的哈希值。
返回值:
- Int64 - 该实例成员函数信息的哈希值。
 
func isAbstract()
public func isAbstract(): Bool
功能:判断 InstanceFunctionInfo 所对应的实例成员函数是否拥有 abstract 语义。
返回值:
- Bool - 如果该实例成员函数拥有 
abstract语义则返回true,否则返回false。 
func isOpen()
public func isOpen(): Bool
功能:判断该 InstanceFunctionInfo 对应的实例成员函数是否拥有 open 语义。
返回值:
- Bool - 如果该实例成员函数拥有 
open语义则返回true,否则返回false。 
注意:
interface类型中的实例成员函数默认均拥有open语义。
func toString()
public func toString(): String
功能:获取字符串形式的该实例成员函数信息。
返回值:
- String - 字符串形式的该实例成员函数信息。
 
operator func ==(InstanceFunctionInfo)
public operator func ==(that: InstanceFunctionInfo): Bool
功能:判断该实例成员函数信息与给定的另一个实例成员函数信息是否相等。
参数:
- that: InstanceFunctionInfo - 被比较相等性的另一个实例成员函数信息。
 
返回值:
- Bool - 如果该实例成员函数信息与 
that相等则返回true,否则返回false。 
operator func !=(InstanceFunctionInfo)
public operator func !=(that: InstanceFunctionInfo): Bool
功能:判断该实例成员函数信息与给定的另一个实例成员函数信息是否不等。
参数:
- that: InstanceFunctionInfo - 被比较相等性的另一个实例成员函数信息。
 
返回值:
- Bool - 如果该实例成员函数信息与 
that不等则返回true,否则返回false。 
class InstancePropertyInfo
public class InstancePropertyInfo <: Equatable<InstancePropertyInfo> & Hashable & ToString
功能:描述实例成员属性信息。
父类型:
prop annotations
public prop annotations: Collection<Annotation>
功能:获取所有作用于该 InstancePropertyInfo 对应的实例成员属性的注解,返回对应集合。
注意:
- 如果无任何注解作用于该实例成员属性信息所对应的实例成员属性,则返回空集合。
 - 该集合不保证遍历顺序恒定。
 
类型:Collection<Annotation>
prop modifiers
public prop modifiers: Collection<ModifierInfo>
功能:获取该 InstancePropertyInfo 对应的实例成员属性所拥有的所有修饰符的信息,返回对应集合。
注意:
- 如果该实例成员属性无任何修饰符,则返回空集合。
 - 该集合不保证遍历顺序恒定。
 - 即便未被某修饰符修饰,如果拥有该修饰符的语义,该修饰符信息也将被包括在该集合中。
 
prop name
public prop name: String
功能:获取该 InstancePropertyInfo 对应的实例成员属性的名称。
类型:String
prop typeInfo
public prop typeInfo: TypeInfo
功能:获取该 InstancePropertyInfo 对应的实例成员属性的声明类型的类型信息。
类型:TypeInfo
func findAnnotation<T>() where T <: Annotation
public func findAnnotation<T>(): Option<T> where T <: Annotation
功能:尝试获取作用于该 InstancePropertyInfo 对应的实例成员属性且拥有给定限定名称的注解。
返回值:
- Option<T> - 如果成功匹配则返回该注解,否则返回 
None。 
func getValue(Any)
public func getValue(instance: Any): Any
功能:获取该 InstancePropertyInfo 对应的实例成员属性在给定实例中的值。
注意:
目前,实例
instance不支持struct类型的实例。
参数:
- instance: Any - 实例。
 
返回值:
- Any - 该实例成员属性在实例 
instance中的值。 
异常:
- IllegalTypeException - 如果实例 
instance的运行时类型与该实例成员属性信息所对应的实例成员属性所属的类型不严格相同,则抛出异常。 
func hashCode()
public func hashCode(): Int64
功能:获取该实例成员属性信息的哈希值。
返回值:
- Int64 - 该实例成员属性信息的哈希值。
 
func isAbstract()
public func isAbstract(): Bool
功能:判断该 InstancePropertyInfo 对应的实例成员属性是否是抽象的。
返回值:
- Bool - 如果该 InstancePropertyInfo 对应的实例成员属性是抽象的,则返回 
true,否则返回false。 
func isOpen()
public func isOpen(): Bool
功能:判断该 InstancePropertyInfo 对应的实例成员属性是否拥有 open 语义。
返回值:
- Bool - 如果该 InstancePropertyInfo 对应的实例成员属性拥有 
open语义则返回true,否则返回false。 
func isMutable()
public func isMutable(): Bool
功能:判断该 InstancePropertyInfo 对应的实例成员属性是否可修改。
注意:
- 如果实例成员属性被
 mut修饰符所修饰,则该实例成员属性可被修改,否则不可被修改。- 任何
 struct类型的实例的任何实例成员属性均不可修改。- 任何类型为
 struct的实例成员属性均不可修改。
返回值:
- Bool - 如果该实例成员属性信息所对应的实例成员属性可被修改则返回 
true,否则返回false。 
func setValue(Any, Any)
public func setValue(instance: Any, newValue: Any): Unit
功能:设置该 InstancePropertyInfo 对应的实例成员属性在给定实例中的值。
注意:
目前,实例
instance不支持struct类型的实例。
参数:
异常:
- IllegalSetException - 如果该实例成员属性信息所对应的实例成员属性不可修改,则抛出异常。
 - IllegalTypeException - 如果实例 
instance的运行时类型与该实例成员属性信息所对应的实例成员属性所属的类型不严格相同,则抛出异常。 - IllegalTypeException - 如果新值 
newValue的运行时类型不是该实例成员属性信息所对应的实例成员属性的声明类型的子类型,则抛出异常。 
func toString()
public func toString(): String
功能:获取字符串形式的该实例成员属性信息。
返回值:
- String - 字符串形式的该实例成员属性信息。
 
operator func !=(InstancePropertyInfo)
public operator func !=(that: InstancePropertyInfo): Bool
功能:判断该实例成员属性信息与给定的另一个实例成员属性信息是否不等。
参数:
- that: InstancePropertyInfo - 被比较相等性的另一个实例成员属性信息。
 
返回值:
- Bool - 如果该实例成员属性信息与 
that不等则返回true,否则返回false。 
operator func ==(InstancePropertyInfo)
public operator func ==(that: InstancePropertyInfo): Bool
功能:判断该实例成员属性信息与给定的另一个实例成员属性信息是否相等。
参数:
- that: InstancePropertyInfo - 被比较相等性的另一个实例成员属性信息。
 
返回值:
- Bool - 如果该实例成员属性信息与 
that相等则返回true,否则返回false。 
class InstanceVariableInfo
public class InstanceVariableInfo <: Equatable<InstanceVariableInfo> & Hashable & ToString
功能:描述实例成员变量信息。
父类型:
prop annotations
public prop annotations: Collection<Annotation>
功能:获取所有作用于该 InstanceVariableInfo 对应的实例成员变量的注解,返回对应集合。
注意:
- 如果无任何注解作用于该实例成员变量信息所对应的实例成员变量,则返回空集合。
 - 该集合不保证遍历顺序恒定。
 
类型:Collection<Annotation>
prop modifiers
public prop modifiers: Collection<ModifierInfo>
功能:获取该 InstanceVariableInfo 对应的实例成员变量所拥有的所有修饰符的信息,返回对应集合。
注意:
- 如果该实例成员变量无任何修饰符,则返回空集合。
 - 该集合不保证遍历顺序恒定。
 - 即便未被某修饰符修饰,如果拥有该修饰符的语义,该修饰符信息也将被包括在该集合中。
 
prop name
public prop name: String
功能:获取该 InstanceVariableInfo 对应的实例成员变量的名称。
类型:String
prop typeInfo
public prop typeInfo: TypeInfo
功能:获取该 InstanceVariableInfo 对应的实例成员变量的声明类型的类型信息。
类型:TypeInfo
func findAnnotation<T>() where T <: Annotation
public func findAnnotation<T>(): Option<T> where T <: Annotation
功能:尝试获取作用于该 InstanceVariableInfo 对应的实例成员变量且拥有给定限定名称的注解。
返回值:
- Option<T> - 如果成功匹配则返回该注解,否则返回 
None。 
func getValue(Any)
public func getValue(instance: Any): Any
功能:获取该 InstanceVariableInfo 对应的实例成员变量在给定实例中的值。
注意:
- 目前,实例
 instance不支持struct类型的实例。- 目前,返回值不支持为
 struct类型的实例。
参数:
- instance: Any - 实例。
 
返回值:
- Any - 该实例成员变量在实例 
instance中的值。 
异常:
- IllegalTypeException - 如果实例 
instance的运行时类型与该实例成员变量信息所对应的实例成员变量所属的类型不严格相同,则抛出异常。 
func hashCode()
public func hashCode(): Int64
功能:获取该实例成员变量信息的哈希值。
返回值:
- Int64 - 该实例成员变量信息的哈希值。
 
func isMutable()
public func isMutable(): Bool
功能:判断该 InstanceVariableInfo 对应的实例成员变量是否可修改。
注意:
- 如果实例成员变量被
 var修饰符所修饰,则该实例成员变量可被修改。- 如果实例成员变量被
 let修饰符所修饰,则该实例成员变量不可被修改。- 任何
 struct类型的实例的任何实例成员变量均不可修改。- 任何类型为
 struct的实例成员变量均不可修改。
返回值:
- Bool - 如果该实例成员变量信息所对应的实例成员变量可被修改则返回 
true,否则返回false。 
func setValue(Any, Any)
public func setValue(instance: Any, newValue: Any): Unit
功能:设置该 InstanceVariableInfo 对应的实例成员变量在给定实例中的值。
注意:
目前,实例
instance不支持struct类型的实例。
参数:
异常:
- IllegalSetException - 如果该实例成员变量信息所对应的实例成员变量不可修改,则抛出异常。
 - IllegalTypeException - 如果实例 
instance的运行时类型与该实例成员变量信息所对应的实例成员变量所属的类型不严格相同,则抛出异常。 - IllegalTypeException - 如果新值 
newValue的运行时类型不是该实例成员变量信息所对应的实例成员变量的声明类型的子类型,则抛出异常。 
func toString()
public func toString(): String
功能:获取字符串形式的该实例成员变量信息。
返回值:
- String - 字符串形式的该实例成员变量信息。
 
operator func ==(InstanceVariableInfo)
public operator func ==(that: InstanceVariableInfo): Bool
功能:判断该实例成员变量信息与给定的另一个实例成员变量信息是否相等。
参数:
- that: InstanceVariableInfo - 被比较相等性的另一个实例成员变量信息。
 
返回值:
- Bool - 如果该实例成员变量信息与 
that相等则返回true,否则返回false。 
operator func !=(InstanceVariableInfo)
public operator func !=(that: InstanceVariableInfo): Bool
功能:判断该实例成员变量信息与给定的另一个实例成员变量信息是否不等。
参数:
- that: InstanceVariableInfo - 被比较相等性的另一个实例成员变量信息。
 
返回值:
- Bool - 如果该实例成员变量信息与 
that不等则返回true,否则返回false。 
class InterfaceTypeInfo
public class InterfaceTypeInfo <: TypeInfo
功能:interface 类型的类型信息。
父类型:
prop sealedSubtypes
public prop sealedSubtypes: Collection<TypeInfo>
功能:如果该 InterfaceTypeInfo 所对应的 interface 类型拥有 sealed 语义,则获取该 interface 类型所在包内的所有子类型的类型信息,返回对应集合。
注意:
- 如果该
 interface类型不拥有sealed语义,则返回空集合。- 如果该
 interface类型拥有sealed语义,那么获得的集合必不可能是空集合,因为该interface类型本身就是自己的子类型。
类型:Collection<TypeInfo>
func isSealed()
public func isSealed(): Bool
功能:判断该 InterfaceTypeInfo 所对应的 interface 类型是否拥有 sealed 语义。
返回值:
- Bool - 如果该 
interface类型拥有sealed语义则返回true,否则返回false。 
static func get(String)
public redef static func get(qualifiedName: String): InterfaceTypeInfo
功能:获取给定 qualifiedName 所对应的类型的 InterfaceTypeInfo。
参数:
- qualifiedName: String - 类型的限定名称。
 
返回值:
- InterfaceTypeInfo - 类型的限定名称 
qualifiedName所对应的Interface类型的类型信息。 
异常:
- InfoNotFoundException - 如果无法获取与给定类型的限定名称 
qualifiedName匹配的类型所对应的类型信息,则抛出异常。 - IllegalTypeException - 如果获取到的类型信息不是 InterfaceTypeInfo, 则抛出异常。
 
static func of(Any)
public redef static func of(a: Any): InterfaceTypeInfo
功能:获取给定的任意类型实例的运行时类型所对应的类型信息。
运行时类型是指在程序运行时,通过动态绑定确定的类型,运行时类型与实例对象相绑定。在继承等场景下运行时类型和静态类型可能不一致。
参数:
- a: Any - 任意类型的实例。
 
返回值:
- InterfaceTypeInfo - 实例 
a的运行时类型所对应的类型信息。 
异常:
- InfoNotFoundException - 如果无法获得实例 
a的运行时类型所对应的类型信息,则抛出异常。 - IllegalTypeException - 如果获取到的类型信息不是 InterfaceTypeInfo, 则抛出异常。
 
static func of<T>()
public redef static func of<T>(): InterfaceTypeInfo
功能:获取给定 T 类型对应的类型信息。
返回值:
- InterfaceTypeInfo - 
T类型对应的类型信息。 
异常:
- InfoNotFoundException - 如果无法获得类型 T 所对应的类型信息,抛出异常。
 - IllegalTypeException - 如果获取到的类型信息不是 InterfaceTypeInfo, 则抛出异常。
 
class ModuleInfo
public class ModuleInfo <: Equatable<ModuleInfo> & Hashable & ToString
功能:描述模块信息,提供了仓颉动态模块加载、缓存能力以及模块内包信息查询能力。
仓颉动态模块是仓颉编译器生成的一种特殊二进制文件,这种文件可以被外部的仓颉程序在运行时被加载与使用。
仓颉动态库模块在不同操作系统中以共享库(.so 文件)、动态链接库(.dll 文件)等文件形式存在。
注意:
任一模块下不允许包含拥有相同限定名称的包。
父类型:
prop name
public prop name: String
功能:获取该 ModuleInfo 对应的模块的名称。
注意:
- 模块的名称由被加载的模块的文件名决定,该文件名的格式为
 lib<module_name>_<package_name>(.<package_name>)*。<module_name>和<package_name>均不允许为空。- 由于当前实现的局限性,
 <module_name>中如果包含下划线 "_" 字符,可能出现非预期的加载错误。
类型:String
prop packages
public prop packages: Collection<PackageInfo>
功能:获取该模块中包含的所有包。
prop version
public prop version: String
功能:获取该 ModuleInfo 对应的模块的版本号。
注意:
由于目前动态库中尚无版本信息,获取到的版本号总是
1.0。
类型:String
static func find(String)
public static func find(moduleName: String): Option<ModuleInfo>
功能:尝试在所有已加载的仓颉动态库模块中获取与给定模块名称匹配的模块的信息。
参数:
- moduleName: String - 仓颉动态库模块名称。
 
返回值:
- Option<ModuleInfo> - 如果匹配成功则返回该模块的信息,否则返回 
None。 
static func load(String)
public static func load(path: String): ModuleInfo
功能:运行时动态加载指定路径下的一个仓颉动态库模块并获得该模块的信息。
注意:
- 为了提升兼容性,路径
 path中的共享库文件名不需要后缀名(如.so和.dll等)。- 由于当前实现局限性,具有相同模块名称的动态库不能被同时加载,否则将抛出异常。如
 m/a、m/a.b、m/a.c这三个包所对应的共享库的加载是互斥的。
参数:
- path: String - 共享库文件的绝对路径或相对路径。
 
返回值:
- ModuleInfo - 指定仓颉动态库模块的信息。
 
异常:
- ReflectException - 如果共享库加载失败,则会抛出异常。
 - UnsupportedException - 如果具有相同模块名称的共享库被重复加载,则会抛出异常。
 - IllegalArgumentException - 当路径不合法时,抛出异常。
 
func getPackageInfo(String)
public func getPackageInfo(packageName: String): PackageInfo
功能:尝试在该 ModuleInfo 对应的模块中获取与给定包的名称或限定名称匹配的包的信息。
参数:
- packageName: String - 包的名称或限定名称。
 
返回值:
- PackageInfo - 如果匹配成功则返回该包的信息。
 
异常:
- InfoNotFoundException - 如果没找到对应包,则抛出异常。
 
func hashCode()
public func hashCode(): Int64
功能:获取该模块信息的哈希值。
返回值:
- Int64 - 该模块信息的哈希值。
 
注意:
内部实现为该模块信息的名称和版本号字符串的哈希值。
func toString()
public func toString(): String
功能:获取字符串形式的该模块信息。
返回值:
- String - 字符串形式的该模块信息。
 
注意:
内容为该模块的名称和版本号。
operator func !=(ModuleInfo)
public operator func !=(that: ModuleInfo): Bool
功能:判断该模块信息与给定的另一个模块信息是否不等。
参数:
- that: ModuleInfo - 被比较相等性的另一个模块信息。
 
返回值:
- Bool - 如果该模块信息与 
that不等则返回true,否则返回false。 
operator func ==(ModuleInfo)
public operator func ==(that: ModuleInfo): Bool
功能:判断该模块信息与给定的另一个模块信息是否相等。
参数:
- that: ModuleInfo - 被比较相等性的另一个模块信息。
 
返回值:
- Bool - 如果该模块信息与 
that相等则返回true,否则返回false。 
class PackageInfo
public class PackageInfo <: Equatable<PackageInfo> & Hashable & ToString
功能:描述包信息。
父类型:
prop functions
public prop functions: Collection<GlobalFunctionInfo>
功能:获取该 PackageInfo 对应的包中所有 public 全局函数的信息所组成的列表。
类型:Collection<GlobalFunctionInfo>
prop name
public prop name: String
功能:获取该包信息所对应的包的名称。
注意:
包的名称不包含其所在的模块名称和其父包的名称,例如限定名称为
a/b.c.d的包的名称是d。
类型:String
prop qualifiedName
public prop qualifiedName: String
功能:获取该 PackageInfo 对应的包的限定名称。
注意:
包的限定名称的格式是
(module_name/)?(default|package_name)(.package_name)*,例如限定名称为a/b.c.d的包位于模块a下的b包里的c包里。
类型:String
prop typeInfos
public prop typeInfos: Collection<TypeInfo>
功能:获取该 PackageInfo 对应的包中所有全局定义的 public 类型的类型信息,返回对应集合。
注意:
目前该列表不包含所有反射尚未支持的类型。
类型:Collection<TypeInfo>
prop variables
public prop variables: Collection<GlobalVariableInfo>
功能:获取该 PackageInfo 对应的包中所有 public 全局变量的信息所组成的列表。
类型:Collection<GlobalVariableInfo>
static func get(String)
public static func get(qualifiedName: String): PackageInfo
功能:获取给定 qualifiedName 所对应的类型的 PackageInfo。
注意:
- 未实例化的泛型类型的类型信息无法被获取。
 - 目前, 类型的限定名称
 qualifiedName不支持Nothing类型、函数类型、元组类型、enum类型和带有泛型的struct类型的限定名称。
参数:
- qualifiedName: String - 类型的限定名称。
 
返回值:
- PackageInfo - 类型的限定名称 
qualifiedName所对应的类型的类型信息。 
异常:
- InfoNotFoundException - 如果无法获取与给定类型的限定名称 
qualifiedName匹配的类型所对应的类型信息,则抛出异常。 
func getFunction(String, Array<TypeInfo>)
public func getFunction(name: String, parameterTypes: Array<TypeInfo>): GlobalFunctionInfo
功能:尝试在该 PackageInfo 对应的包中获取拥有给定函数名称且与给定形参类型信息列表匹配的 public 全局函数的信息。
参数:
返回值:
- GlobalFunctionInfo - 如果成功匹配则返回该全局定义的 
public类型的函数信息。 
异常:
- InfoNotFoundException - 如果没找到对应全局定义的 
public全局函数,则抛出异常。 
func getFunctions(String)
public func getFunctions(name: String): Array<GlobalFunctionInfo>
功能:尝试在该 PackageInfo 对应的包中获取拥有给定函数名称的所有 public 全局函数的信息。
参数:
- name: String - 全局函数的名称。
 
返回值:
- Array<GlobalFunctionInfo> - 拥有给定函数名称的所有 
public全局函数的信息数组。 
func getTypeInfo(String)
public func getTypeInfo(qualifiedTypeName: String): TypeInfo
功能:尝试在该 PackageInfo 对应的包中获取拥有给定类型名称的全局定义的 public 类型的类型信息。
参数:
- qualifiedTypeName: String - 类型的限定名称
 
返回值:
- TypeInfo - 如果成功匹配则返回该全局定义的 
public类型的类型信息。 
异常:
- InfoNotFoundException - 如果没找到对应全局定义的 
public类型,则抛出异常。 
func getVariable(String)
public func getVariable(name: String): GlobalVariableInfo
功能:尝试在该 PackageInfo 对应的包中获取拥有给定变量名称的 public 全局变量的信息。
参数:
- name: String - 全局变量的名称。
 
返回值:
- GlobalVariableInfo - 如果成功匹配则返回该全局定义的 
public类型的变量信息。 
异常:
- InfoNotFoundException - 如果没找到对应全局定义的 
public全局变量,则抛出异常。 
func hashCode()
public func hashCode(): Int64
功能:获取该包信息的哈希值。
返回值:
- Int64 - 该包信息的哈希值。
 
func toString()
public func toString(): String
功能:获取字符串形式的该包信息。
注意:
内部实现为该包信息的限定名称字符串。
返回值:
- String - 字符串形式的该包信息。
 
operator func !=(PackageInfo)
public operator func !=(that: PackageInfo): Bool
功能:判断该包信息与给定的另一个包信息是否不等。
注意:
内部实现为比较两个包信息的限定名称是否相等。
参数:
- that: PackageInfo - 被比较相等性的另一个包信息。
 
返回值:
- Bool - 如果该包信息与 
that不等则返回true,否则返回false。 
operator func ==(PackageInfo)
public operator func ==(that: PackageInfo): Bool
功能:判断该包信息与给定的另一个包信息是否相等。
注意:
内部实现为比较两个包信息的限定名称是否相等。
参数:
- that: PackageInfo - 被比较相等性的另一个包信息。
 
返回值:
- Bool - 如果该包信息与 
that相等则返回true,否则返回false。 
class ParameterInfo
public class ParameterInfo <: Equatable<ParameterInfo> & Hashable & ToString
功能:描述函数形参信息。
父类型:
prop annotations
public prop annotations: Collection<Annotation>
功能:获取所有作用于该 ParameterInfo 对应的函数形参的注解,返回对应集合。
注意:
- 如果无任何注解作用于该函数形参信息所对应的函数形参,则返回空集合。
 - 该集合不保证遍历顺序恒定。
 
类型:Collection<Annotation>
prop index
public prop index: Int64
功能:获知该 ParameterInfo 对应的形参是其所在函数的第几个形参。
注意:
index从0开始计数。
类型:Int64
prop name
public prop name: String
功能:获取该 ParameterInfo 对应的形参的名称。
类型:String
prop typeInfo
public prop typeInfo: TypeInfo
功能:获取该 ParameterInfo 对应的函数形参的声明类型所对应的类型信息。
类型:TypeInfo
func findAnnotation<T>() where T <: Annotation
public func findAnnotation<T>(): Option<T> where T <: Annotation
功能:尝试获取作用于该 ParameterInfo 对应的函数形参且拥有给定限定名称的注解。
返回值:
- Option<T> - 如果成功匹配则返回该注解,否则返回 
None。 
func hashCode()
public func hashCode(): Int64
功能:获取该函数形参信息的哈希值。
返回值:
- Int64 - 该函数形参信息的哈希值。
 
func toString()
public func toString(): String
功能:获取字符串形式的该函数形参信息。
返回值:
- String - 字符串形式的该函数形参信息。
 
operator func !=(ParameterInfo)
public operator func !=(that: ParameterInfo): Bool
功能:判断该函数形参信息与给定的另一个函数形参信息是否不等。
参数:
- that: ParameterInfo - 被比较相等性的另一个函数形参信息。
 
返回值:
- Bool - 如果该函数形参信息与 
that不等则返回true,否则返回false。 
operator func ==(ParameterInfo)
public operator func ==(that: ParameterInfo): Bool
功能:判断该函数形参信息与给定的另一个函数形参信息是否相等。
参数:
- that: ParameterInfo - 被比较相等性的另一个函数形参信息。
 
返回值:
- Bool - 如果该函数形参信息与 
that相等则返回true,否则返回false。 
class PrimitiveTypeInfo
public class PrimitiveTypeInfo <: TypeInfo
功能:描述原始数据类型的类型信息。
原始数据类型包括无类型(Nothing)、单元类型(Unit)、字符类型(Rune)、布尔类型(Bool),整形类型(Int8,Int16,Int32,Int64,IntNative,UInt8,UInt16,UInt32,UInt64,UIntNative)和浮点类型(Float16,Float32,Float64)。
注意:
目前尚不支持
Nothing原始数据类型。
父类型:
static func get(String)
public redef static func get(qualifiedName: String): PrimitiveTypeInfo
功能:获取给定的类型的限定名称所对应类型的 PrimitiveTypeInfo。
参数:
- qualifiedName: String - 类型的限定名称。
 
返回值:
- PrimitiveTypeInfo - 类型的限定名称 
qualifiedName所对应的类型的类型信息。 
异常:
- InfoNotFoundException - 如果无法获取与给定类型的限定名称 
qualifiedName匹配的类型所对应的类型信息,则抛出异常。 - IllegalTypeException - 如果获取到的类型信息不是 PrimitiveTypeInfo, 则抛出异常。
 
static func of(Any)
public redef static func of(a: Any): PrimitiveTypeInfo
功能:获取给定的任意类型实例的运行时类型所对应的类型信息。
运行时类型是指在程序运行时,通过动态绑定确定的类型,运行时类型与实例对象相绑定。在继承等场景下运行时类型和静态类型可能不一致。
参数:
- a: Any - 任意类型的实例。
 
返回值:
- PrimitiveTypeInfo - 实例 
a的运行时类型所对应的类型信息。 
异常:
- InfoNotFoundException - 如果无法获得实例 
a的运行时类型所对应的类型信息,则抛出异常。 - IllegalTypeException - 如果获取到的类型信息不是 PrimitiveTypeInfo, 则抛出异常。
 
static func of<T>()
public redef static func of<T>(): PrimitiveTypeInfo
功能:获取给定 T 类型对应的类型信息。
返回值:
- PrimitiveTypeInfo - 
T类型对应的类型信息。 
异常:
- InfoNotFoundException - 如果无法获得类型 T 所对应的类型信息,抛出异常。
 - IllegalTypeException - 如果获取到的类型信息不是 PrimitiveTypeInfo, 则抛出异常。
 
class StaticFunctionInfo
public class StaticFunctionInfo <: Equatable<StaticFunctionInfo> & Hashable & ToString
功能:描述静态成员函数信息。
父类型:
prop annotations
public prop annotations: Collection<Annotation>
功能:获取所有作用于该 StaticFunctionInfo 对应的静态成员函数的注解,返回对应集合。
注意:
- 如果无任何注解作用于该 StaticFunctionInfo 对应的静态成员函数,则返回空集合。
 - 该集合不保证遍历顺序恒定。
 
类型:Collection<Annotation>
prop genericParams
public prop genericParams: Collection<GenericTypeInfo>
功能:获取该 StaticFunctionInfo 对应的实例成员函数的泛型参数信息列表。
类型:Collection<GenericTypeInfo>
异常:InfoNotFoundException - GlobalFunctionInfo 没有泛型参数时抛出异常。
prop modifiers
public prop modifiers: Collection<ModifierInfo>
功能:获取该 StaticFunctionInfo 对应的静态成员函数所拥有的所有修饰符的信息,返回对应集合。
注意:
- 如果该静态成员函数无任何修饰符,则返回空集合。
 - 该集合不保证遍历顺序恒定。
 - 即便未被某修饰符修饰,如果拥有该修饰符的语义,该修饰符信息也将被包括在该集合中。
 
prop name
public prop name: String
功能:获取该 StaticFunctionInfo 对应的静态成员函数的名称。
注意:
构成重载的所有静态成员函数将拥有相同的名称。
类型:String
prop parameters
public prop parameters: ReadOnlyList<ParameterInfo>
功能:获取该 StaticFunctionInfo 对应的静态成员函数的参数信息列表。
注意:
不保证参数顺序,可根据
ParameterInfo的index属性确定参数实际位置。
类型:ReadOnlyList<ParameterInfo>
prop returnType
public prop returnType: TypeInfo
功能:获取该 StaticFunctionInfo 对应的静态成员函数的返回值类型的类型信息。
类型:TypeInfo
func apply(TypeInfo, Array<Any>)
public func apply(thisType: TypeInfo, args: Array<Any>): Any
功能:调用该 StaticFunctionInfo 对应静态成员函数,传入方法所属的类型信息和实参列表并返回调用结果。
注意:
args的类型确保和函数入参类型完全一致,否则会导致参数检查失败。
参数:
返回值:
- Any - 该静态成员函数的调用结果。
 
异常:
- InvocationTargetException - 如果该函数信息对应的静态成员函数存在泛型参数,则会抛出异常。
 - InfoNotFoundException - 如果该函数信息对应的静态成员函数的函数体未实现,则会抛出异常。
 - IllegalArgumentException - 如果实参列表 
args中的实参的数目与该静态成员函数信息所对应的静态成员函数的形参列表中的形参的数目不等,则抛出异常。 - IllegalArgumentException - 如果 
thisType和该静态函数的函数签名不一致,则抛出异常。 - IllegalTypeException - 如果实参列表 
args中的任何一个实参的运行时类型不是该静态成员函数信息所对应的静态成员函数的对应形参的声明类型的子类型,则抛出异常。 - Exception - 如果被调用的静态成员函数信息所对应的静态成员函数内部抛出异常,则该异常将被封装为 Exception 异常并抛出。
 
func apply(TypeInfo, Array<TypeInfo>, Array<Any>)
public func apply(thisType: TypeInfo, genericTypeArgs: Array<TypeInfo>, args: Array<Any>): Any
功能:调用该 StaticFunctionInfo 对应静态成员函数,传入方法所属的类型信息和实参列表并返回调用结果。
注意:
args的类型确保和函数入参类型完全一致,否则会导致参数检查失败。
参数:
- thisType: TypeInfo - 该方法所属的类型。
 - genericTypeArgs: Array<TypeInfo> - 泛型参数类型列表。
 - args: Array<Any> - 实参列表。
 
返回值:
- Any - 该静态成员函数的调用结果。
 
异常:
- InvocationTargetException - 如果该函数信息对应的静态成员函数是非泛型函数,则抛出异常。
 - InfoNotFoundException - 如果该函数信息对应的静态成员函数的函数体未实现,则会抛出异常。
 - IllegalArgumentException - 如果实参列表 
args中的实参的数目与该静态成员函数信息所对应的静态成员函数的形参列表中的形参的数目不等,则抛出异常。 - IllegalArgumentException - 如果实参列表 
args中的泛型参数的数目与该静态成员函数信息所对应的泛型参数的数目不等,则抛出异常。 - IllegalArgumentException - 如果 
thisType和该静态函数的函数签名不一致,则抛出异常。 - IllegalTypeException - 如果实参列表 
args中的任何一个实参的运行时类型不是该静态成员函数信息所对应的静态成员函数的对应形参的声明类型的子类型,则抛出异常。 - IllegalTypeException - 如果传入的参数列表 
args和泛型参数类型列表genericTypeArgs不满足该静态成员函数信息所对应的静态成员函数的参数的类型约束,则抛出异常。 - Exception - 如果被调用的静态成员函数信息所对应的静态成员函数内部抛出异常,则该异常将被封装为 Exception 异常并抛出。
 
func findAnnotation<T>() where T <: Annotation
public func findAnnotation<T>(): Option<T> where T <: Annotation
功能:尝试获取作用于 StaticFunctionInfo 对应的静态成员函数且拥有给定限定名称的注解。
返回值:
- Option<T> - 如果成功匹配则返回该注解,否则返回 
None。 
func hashCode()
public func hashCode(): Int64
功能:获取该静态成员函数信息的哈希值。
返回值:
- Int64 - 该静态成员函数信息的哈希值。
 
func toString()
public func toString(): String
功能:获取字符串形式的该静态成员函数信息。
返回值:
- String - 字符串形式的该静态成员函数信息。
 
operator func !=(StaticFunctionInfo)
public operator func !=(that: StaticFunctionInfo): Bool
功能:判断该静态成员函数信息与给定的另一个静态成员函数信息是否不等。
参数:
- that: StaticFunctionInfo - 被比较相等性的另一个静态成员函数信息。
 
返回值:
- Bool - 如果该静态成员函数信息与 
that不等则返回true,否则返回false。 
operator func ==(StaticFunctionInfo)
public operator func ==(that: StaticFunctionInfo): Bool
功能:判断该静态成员函数信息与给定的另一个静态成员函数信息是否相等。
参数:
- that: StaticFunctionInfo - 被比较相等性的另一个静态成员函数信息。
 
返回值:
- Bool - 如果该静态成员函数信息与 
that相等则返回true,否则返回false。 
class StaticPropertyInfo
public class StaticPropertyInfo <: Equatable<StaticPropertyInfo> & Hashable & ToString
功能:描述静态成员属性信息。
父类型:
prop annotations
public prop annotations: Collection<Annotation>
功能:获取所有作用于该 StaticPropertyInfo 所对应的静态成员属性的注解所组成的集合。
注意:
- 如果无任何注解作用于该静态成员属性信息所对应的静态成员属性,则返回空集合。
 - 该集合不保证遍历顺序恒定。
 
类型:Collection<Annotation>
prop modifiers
public prop modifiers: Collection<ModifierInfo>
功能:获取该 StaticPropertyInfo 对应的静态成员属性所拥有的所有修饰符的信息,返回对应集合。
注意:
- 如果该静态成员属性无任何修饰符,则返回空集合。
 - 该集合不保证遍历顺序恒定。
 - 目前获取到的修饰符集合内容较为混乱,尚未统一。
 
prop name
public prop name: String
功能:获取该 StaticPropertyInfo 对应的静态成员属性的名称。
类型:String
prop typeInfo
public prop typeInfo: TypeInfo
功能:获取该 StaticPropertyInfo 对应的静态成员属性的声明类型的类型信息。
类型:TypeInfo
func findAnnotation<T>() where T <: Annotation
public func findAnnotation<T>(): Option<T> where T <: Annotation
功能:尝试获取作用于该 StaticPropertyInfo 对应的静态成员属性且拥有给定限定名称的注解。
返回值:
- Option<T> - 如果成功匹配则返回该注解,否则返回 
None。 
func getValue()
public func getValue(): Any
功能:获取该 StaticPropertyInfo 对应的静态成员属性的值。
注意:
如果该静态成员属性缺少合法实现,如
interface类型中的抽象静态成员属性,则应抛出 UnsupportedException 异常,但由于后端尚未支持,故尚未实现。
返回值:
- Any - 该静态成员属性的值。
 
func hashCode()
public func hashCode(): Int64
功能:获取该静态成员属性信息的哈希值。
返回值:
- Int64 - 该静态成员属性信息的哈希值。
 
func isMutable()
public func isMutable(): Bool
功能:判断该静态成员属性信息所对应的静态成员属性是否可修改。
返回值:
- Bool - 如果该静态成员属性信息所对应的静态成员属性可被修改则返回 
true,否则返回false。 
注意:
- 如果静态成员属性被
 mut修饰符所修饰,则该静态成员属性可被修改,否则不可被修改。- 任何
 struct类型的任何静态成员属性均不可修改。- 任何类型为
 struct的静态成员属性均不可修改。
func setValue(Any)
public func setValue(newValue: Any): Unit
功能:设置该 StaticPropertyInfo 对应的静态成员属性的值。
注意:
如果该静态成员属性缺少合法实现,如
interface类型中的抽象静态成员属性,则应抛出 UnsupportedException 异常,但由于后端尚未支持,故尚未实现。
参数:
- newValue: Any - 新值。
 
异常:
- IllegalSetException - 如果该静态成员属性信息所对应的静态成员属性不可修改,则抛出异常。
 - IllegalTypeException - 如果新值 
newValue的运行时类型不是该静态成员属性信息所对应的静态成员属性的声明类型的子类型,则抛出异常。 
func toString()
public func toString(): String
功能:获取字符串形式的该静态成员属性信息。
返回值:
- String - 字符串形式的该静态成员属性信息。
 
operator func !=(StaticPropertyInfo)
public operator func !=(that: StaticPropertyInfo): Bool
功能:判断该静态成员属性信息与给定的另一个静态成员属性信息是否不等。
参数:
- that: StaticPropertyInfo - 被比较相等性的另一个静态成员属性信息。
 
返回值:
- Bool - 如果该静态成员属性信息与 
that不等则返回true,否则返回false。 
operator func ==(StaticPropertyInfo)
public operator func ==(that: StaticPropertyInfo): Bool
功能:判断该静态成员属性信息与给定的另一个静态成员属性信息是否相等。
参数:
- that: StaticPropertyInfo - 被比较相等性的另一个静态成员属性信息。
 
返回值:
- Bool - 如果该静态成员属性信息与 
that相等则返回true,否则返回false。 
class StaticVariableInfo
public class StaticVariableInfo <: Equatable<StaticVariableInfo> & Hashable & ToString
功能:描述静态成员变量信息。
父类型:
prop annotations
public prop annotations: Collection<Annotation>
功能:获取所有作用于该 StaticVariableInfo 对应的静态成员变量的注解,返回对应集合。
注意:
- 如果无任何注解作用于该 StaticVariableInfo 对应的静态成员变量,则返回空集合。
 - 该集合不保证遍历顺序恒定。
 
类型:Collection<Annotation>
prop modifiers
public prop modifiers: Collection<ModifierInfo>
功能:获取该 StaticVariableInfo 对应的静态成员变量所拥有的所有修饰符的信息,返回对应集合。
注意:
- 如果该静态成员变量无任何修饰符,则返回空集合。
 - 该集合不保证遍历顺序恒定。
 - 目前获取到的修饰符集合内容较为混乱,尚未统一。
 
prop name
public prop name: String
功能:获取该 StaticVariableInfo 对应的静态成员变量的名称。
类型:String
prop typeInfo
public prop typeInfo: TypeInfo
功能:获取该 StaticVariableInfo 对应的静态成员变量的声明类型的类型信息。
类型:TypeInfo
func findAnnotation<T>() where T <: Annotation
public func findAnnotation<T>(): Option<T> where T <: Annotation
功能:尝试获取作用于该 StaticVariableInfo 对应的静态成员变量且拥有给定限定名称的注解。
返回值:
- Option<T> - 如果成功匹配则返回该注解,否则返回 
None。 
func getValue()
public func getValue(): Any
功能:获取该 StaticVariableInfo 对应的静态成员变量的值。
返回值:
- Any - 该静态成员变量的值。
 
注意:
- 返回值不支持为
 struct类型。
func hashCode()
public func hashCode(): Int64
功能:获取该静态成员变量信息的哈希值。
返回值:
- Int64 - 该静态成员变量信息的哈希值。
 
func isMutable()
public func isMutable(): Bool
功能:判断该 StaticVariableInfo 对应的静态成员变量是否可修改。
注意:
- 如果静态成员变量被
 var修饰符所修饰,则该静态成员变量可被修改。- 如果静态成员变量被
 let修饰符所修饰,则该静态成员变量不可被修改。- 任何
 struct类型的任何静态成员变量均不可修改。- 任何类型为
 struct的静态成员变量均不可修改。
返回值:
- Bool - 如果该静态成员变量信息所对应的静态成员变量可被修改则返回 
true,否则返回false。 
func setValue(Any)
public func setValue(newValue: Any): Unit
功能:设置该 StaticVariableInfo 对应的静态成员变量的值。
参数:
- newValue: Any - 新值。
 
异常:
- IllegalSetException - 如果该 StaticVariableInfo 对应的静态成员变量不可修改,则抛出异常。
 - IllegalTypeException - 如果新值 
newValue的运行时类型不是该静态成员变量信息所对应的静态成员变量的声明类型的子类型,则抛出异常。 
func toString()
public func toString(): String
功能:获取字符串形式的该静态成员变量信息。
返回值:
- String - 字符串形式的该静态成员变量信息。
 
operator func !=(StaticVariableInfo)
public operator func !=(that: StaticVariableInfo): Bool
功能:判断该静态成员变量信息与给定的另一个静态成员变量信息是否不等。
参数:
- that: StaticVariableInfo - 被比较相等性的另一个静态成员变量信息。
 
返回值:
- Bool - 如果该静态成员变量信息与 
that不等则返回true,否则返回false。 
operator func ==(StaticVariableInfo)
public operator func ==(that: StaticVariableInfo): Bool
功能:判断该静态成员变量信息与给定的另一个静态成员变量信息是否相等。
参数:
- that: StaticVariableInfo - 被比较相等性的另一个静态成员变量信息。
 
返回值:
- Bool - 如果该静态成员变量信息与 
that相等则返回true,否则返回false。 
class StructTypeInfo
public class StructTypeInfo <: TypeInfo
功能:描述 struct 类型的类型信息。
父类型:
prop constructors
public prop constructors: Collection<ConstructorInfo>
功能:获取该 StructTypeInfo 对应的 struct 的所有 public 构造函数信息,返回对应集合。
注意:
- 如果该
 struct类型无任何public构造函数,则返回空集合。- 该集合不保证遍历顺序恒定。
 
类型:Collection<ConstructorInfo>
prop instanceVariables
public prop instanceVariables: Collection<InstanceVariableInfo>
功能:获取该 StructTypeInfo 对应的 struct 的所有 public 实例成员变量信息,返回对应集合。
注意:
- 如果该
 struct类型无任何public实例成员变量,则返回空集合。- 该集合不保证遍历顺序恒定。
 
类型:Collection<InstanceVariableInfo>
prop staticVariables
public prop staticVariables: Collection<StaticVariableInfo>
功能:获取该 StructTypeInfo 对应的 struct 的所有 public 静态成员变量信息,返回对应集合。
注意:
- 如果该
 struct类型无任何public静态成员变量,则返回空集合。- 该集合不保证遍历顺序恒定。
 
类型:Collection<StaticVariableInfo>
func construct(Array<Any>)
public func construct(args: Array<Any>): Any
功能:在该 StructTypeInfo 对应的 struct 类型中根据实参列表搜索匹配的构造函数并调用,传入实参列表,返回调用结果。
参数:
返回值:
- Any - 该 
struct类型的实例。 
异常:
- MisMatchException - 如果 
args未能成功匹配任何该struct类型的public构造函数,则抛出异常 - InvocationTargetException - 在被调用的构造函数内部抛出的任何异常均将被封装为 InvocationTargetException 异常并抛出。
 
注意:
由于
construct函数本质上调用的是apply函数,而目前struct类型中定义的构造函数不支持被调用apply函数,故该函数目前无法正常使用
func getConstructor(Array<TypeInfo>)
public func getConstructor(parameterTypes: Array<TypeInfo>): ConstructorInfo
功能:尝试在该 StructTypeInfo 对应的 struct 类型中获取与给定形参类型信息列表匹配的 public 构造函数的信息。
参数:
返回值:
- ConstructorInfo - 如果成功匹配则返回该 
public构造函数的信息。 
异常:
- InfoNotFoundException - 如果没找到对应 
public构造函数,则抛出异常。 
func getInstanceVariable(String)
public func getInstanceVariable(name: String): InstanceVariableInfo
功能:给定变量名称,尝试获取该 StructTypeInfo 对应的 struct 类型中匹配的实例成员变量的信息。
参数:
- name: String - 变量名称。
 
返回值:
- InstanceVariableInfo - 如果成功匹配则返回该实例成员变量的信息。
 
异常:
- InfoNotFoundException - 如果没找到对应 
public实例成员变量,则抛出异常。 
func getStaticVariable(String)
public func getStaticVariable(name: String): StaticVariableInfo
功能:给定变量名称,尝试获取该 StructTypeInfo 对应的 struct 类型中匹配的静态成员变量的信息。
参数:
- name: String - 变量名称。
 
返回值:
- StaticVariableInfo - 如果成功匹配则返回该静态成员变量的信息。
 
异常:
- InfoNotFoundException - 如果没找到对应 
public静态成员变量,则抛出异常。 
static func get(String)
public redef static func get(qualifiedName: String): StructTypeInfo
功能:获取给定 qualifiedName 所对应的类型的 StructTypeInfo。
参数:
- qualifiedName: String - 类型的限定名称。
 
返回值:
- StructTypeInfo - 类型的限定名称 
qualifiedName所对应的Struct类型的类型信息。 
异常:
- InfoNotFoundException - 如果无法获取与给定类型的限定名称 
qualifiedName匹配的类型所对应的类型信息,则抛出异常。 - IllegalTypeException - 如果获取到的类型信息不是 StructTypeInfo, 则抛出异常。
 
static func of(Any)
public redef static func of(a: Any): StructTypeInfo
功能:获取给定的任意类型实例的运行时类型所对应的类型信息。
运行时类型是指在程序运行时,通过动态绑定确定的类型,运行时类型与实例对象相绑定。在继承等场景下运行时类型和静态类型可能不一致。
参数:
- a: Any - 任意类型的实例。
 
返回值:
- StructTypeInfo - 实例 
a的运行时类型所对应的类型信息。 
异常:
- InfoNotFoundException - 如果无法获得实例 
a的运行时类型所对应的类型信息,则抛出异常。 - IllegalTypeException - 如果获取到的类型信息不是 StructTypeInfo, 则抛出异常。
 
static func of<T>()
public redef static func of<T>(): StructTypeInfo
功能:获取给定 T 类型对应的类型信息。
返回值:
- StructTypeInfo - 
T类型对应的类型信息。 
异常:
- InfoNotFoundException - 如果无法获得类型 T 所对应的类型信息,抛出异常。
 - IllegalTypeException - 如果获取到的类型信息不是 StructTypeInfo, 则抛出异常。
 
class TypeInfo
sealed abstract class TypeInfo <: Equatable<TypeInfo> & Hashable & ToString
功能:TypeInfo 提供了所有数据类型通用的操作接口。开发者通常无需向下转型为更具体的数据类型,如 ClassTypeInfo 等,就能进行反射操作。
TypeInfo 的子类包括 PrimitiveTypeInfo、StructTypeInfo、ClassTypeInfo 和 InterfaceTypeInfo,分别对应基本数据类型,struct 数据类型,class 数据类型和 interface 数据类型的类型信息。
说明
类型的限定名称为
(module_name/)?(default|package_name)(.package_name)*.(type_name)。
父类型:
prop annotations
public prop annotations: Collection<Annotation>
功能:获取所有作用于该 TypeInfo 对应的类型的注解,返回对应集合。
注意:
- 如果无任何注解作用于该类型信息所对应的类型,则返回空集合。
 - 该集合不保证遍历顺序恒定。
 
类型:Collection<Annotation>
prop instanceFunctions
public prop instanceFunctions: Collection<InstanceFunctionInfo>
功能:获取该 TypeInfo 对应类型的所有 public 实例成员函数信息,返回对应集合。
注意:
- 如果该 TypeInfo 对应的类型无任何
 public实例成员函数,则返回空集合。- 该集合不保证遍历顺序恒定。
 - 如果该类型信息所对应的类型是
 struct或class类型,则该集合包含从其他interface类型继承而来的非抽象的实例成员函数的信息。
类型:Collection<InstanceFunctionInfo>
prop instanceProperties
public prop instanceProperties: Collection<InstancePropertyInfo>
功能:获取该 TypeInfo 对应类型的所有 public 实例成员属性信息,返回对应集合。
注意:
- 如果该 TypeInfo 对应的类型无任何
 public实例成员属性,则返回空集合。- 该集合不保证遍历顺序恒定。
 - 如果该类型信息所对应的类型是
 struct或class类型,则该集合包含从其他interface类型继承而来的非抽象的实例成员属性的信息。
类型:Collection<InstancePropertyInfo>
prop modifiers
public prop modifiers: Collection<ModifierInfo>
功能:获取该 TypeInfo 对应的类型拥有的所有修饰符的信息,返回对应集合。
注意:
- 如果该类型无任何修饰符,则返回空集合。
 - 该集合不保证遍历顺序恒定。
 interface类型默认拥有open语义,故返回的集合总是包含open修饰符。- 由于反射功能只能对所有被
 public访问控制修饰符所修饰的类型进行操作,故将忽略所有访问控制修饰符。
prop name
public prop name: String
功能:获取该 TypeInfo 对应的类型的名称。
注意:
类型:String
prop qualifiedName
public prop qualifiedName: String
功能:获取该 TypeInfo 对应的类型的限定名称。
注意:
- 限定名称包含模块名和包名前缀。
 - 特别的,仓颉内置数据类型,以及位于
 std模块core包下的所有类型的限定名称都是不带有任何模块名和包名前缀的。- 在缺省模块名和包名的上下文中定义的所有类型,均无模块名前缀,但拥有包名前缀"
 default",如:"default.MyType"。
类型:String
prop staticFunctions
public prop staticFunctions: Collection<StaticFunctionInfo>
功能:获取该 TypeInfo 对应类型的所有 public 静态成员函数信息,返回对应集合。
注意:
- 如果该 TypeInfo 对应的类型无任何
 public静态成员函数,则返回空集合。- 该集合不保证遍历顺序恒定。
 - 如果该类型信息所对应的类型是
 struct、class或interface类型,则该集合包含从其他interface类型继承而来的非抽象的静态成员函数的信息。
类型:Collection<StaticFunctionInfo>
prop staticProperties
public prop staticProperties: Collection<StaticPropertyInfo>
功能:获取该 TypeInfo 对应类型的所有 public 静态成员属性信息,返回对应集合。
注意:
- 如果该 TypeInfo 对应的类型无任何
 public静态成员属性,则返回空集合。- 该集合不保证遍历顺序恒定。
 - 如果该类型信息所对应的类型是
 struct、class或interface类型,则该集合包含从其他interface类型继承而来的非抽象的静态成员属性的信息。
类型:Collection<StaticPropertyInfo>
prop superInterfaces
public prop superInterfaces: Collection<InterfaceTypeInfo>
功能:获取该 TypeInfo 对应的类型直接实现的所有 interface 类型的信息,返回对应集合。
注意:
类型:Collection<InterfaceTypeInfo>
static func get(String)
public static func get(qualifiedName: String): TypeInfo
功能:获取给定 qualifiedName 所对应的类型的 TypeInfo。
注意:
- 未实例化的泛型类型的类型信息无法被获取。
 - 目前, 类型的限定名称
 qualifiedName不支持Nothing类型、函数类型、元组类型、enum类型和带有泛型的struct类型的限定名称。
参数:
- qualifiedName: String - 类型的限定名称。
 
返回值:
- TypeInfo - 类型的限定名称 
qualifiedName所对应的类型的类型信息。 
异常:
- InfoNotFoundException - 如果无法获取与给定类型的限定名称 
qualifiedName匹配的类型所对应的类型信息,则抛出异常。 
static func of(Any)
public static func of(a: Any): TypeInfo
功能:获取给定的任意类型实例的运行时类型所对应的类型信息。
运行时类型是指在程序运行时,通过动态绑定确定的类型,运行时类型与实例对象相绑定。在继承等场景下运行时类型和静态类型可能不一致。
注意:
目前,实例
a不支持运行时类型为函数类型,元组类型,enum类型。
参数:
- a: Any - 任意类型的实例。
 
返回值:
- TypeInfo - 实例 
a的运行时类型所对应的类型信息。 
异常:
- InfoNotFoundException - 如果无法获得实例 
a的运行时类型所对应的类型信息,则抛出异常。 
static func of(Object) (deprecated)
public static func of(a: Object): ClassTypeInfo
功能:获取给定的 class 类型的实例的运行时类型所对应的 class 类型信息。
注意:
未来版本即将废弃,使用 ClassTypeInfo 的 static func of(Object) 函数替代。
参数:
- a: Object - 
class类型的实例。 
返回值:
- ClassTypeInfo - 
class类型的实例a的运行时类型所对应的class类型信息。 
异常:
- InfoNotFoundException - 如果无法获得实例 
a的运行时类型所对应的class类型信息,则抛出异常。 
static func of<T>()
public static func of<T>(): TypeInfo
功能:获取给定 T 类型对应的类型信息。
注意:
返回值:
- TypeInfo - 
T类型对应的类型信息。 
异常:
- InfoNotFoundException - 如果无法获得类型 T 所对应的类型信息,抛出异常。
 
func findAnnotation<T>()
public func findAnnotation<T>(): Option<T>
功能:尝试获取作用于该 TypeInfo 对应的类型且拥有给定限定名称的注解。
返回值:
- Option<T> - 如果成功匹配则返回该注解,否则返回 
None。 
func getInstanceFunction(String, Array<TypeInfo>)
public func getInstanceFunction(name: String, parameterTypes: Array<TypeInfo>): InstanceFunctionInfo
功能:给定函数名称与函数形参类型列表所对应的类型信息列表,尝试获取该类型中匹配的实例成员函数的信息。
参数:
返回值:
- InstanceFunctionInfo - 如果成功匹配则返回该实例成员函数的信息。
 
异常:
- InfoNotFoundException - 如果没找到对应 
public实例成员函数,则抛出异常。 
func getInstanceFunctions(String)
public func getInstanceFunctions(name: String): Array<InstanceFunctionInfo>
功能:给定函数名称,尝试获取该类型中所有匹配的实例成员函数的信息。
参数:
- name: String - 函数名称。
 
返回值:
- Array<InstanceFunctionInfo> - 如果成功匹配则返回所有匹配到的实例成员函数信息。
 
func getInstanceProperty(String)
public func getInstanceProperty(name: String): InstancePropertyInfo
功能:尝试获取该类型中与给定属性名称匹配的实例成员属性的信息。
参数:
- name: String - 属性名称。
 
返回值:
- InstancePropertyInfo - 如果成功匹配则返回该实例成员属性的信息。
 
异常:
- InfoNotFoundException - 如果没找到对应 
public实例成员属性,则抛出异常。 
func getStaticFunction(String, Array<TypeInfo>)
public func getStaticFunction(name: String, parameterTypes: Array<TypeInfo>): StaticFunctionInfo
功能:通过给定函数名称与函数形参类型列表所对应的类型信息列表,尝试获取该类型中匹配的静态成员函数的信息。
参数:
返回值:
- StaticFunctionInfo - 如果成功匹配则返回该静态成员函数的信息。
 
异常:
- InfoNotFoundException - 如果没找到对应 
public静态成员函数,则抛出异常。 
func getStaticFunctions(String)
public func getStaticFunctions(name: String): Array<StaticFunctionInfo>
功能:给定函数名称,尝试获取该类型中所有匹配的静态成员函数的信息。
参数:
- name: String - 函数名称。
 
返回值:
- Array<StaticFunctionInfo> - 如果成功匹配则返回所有匹配到的静态成员函数信息。
 
func getStaticProperty(String)
public func getStaticProperty(name: String): StaticPropertyInfo
功能:尝试获取该类型中与给定属性名称匹配的静态成员属性的信息。
参数:
- name: String - 属性名称。
 
返回值:
- StaticPropertyInfo - 如果成功匹配则返回该静态成员属性的信息。
 
异常:
- InfoNotFoundException - 如果没找到对应 
public静态成员属性,则抛出异常。 
func hashCode()
public func hashCode(): Int64
功能:获取该类型信息的哈希值。
注意:
内部实现为该类型信息的限定名称字符串的哈希值。
返回值:
- Int64 - 该类型信息的哈希值。
 
func isSubtypeOf(TypeInfo)
public func isSubtypeOf(supertype: TypeInfo): Bool
功能:判断当前 TypeInfo 实例对应的类型是否是参数中指定的 TypeInfo 实例表示的类型的子类型。
注意:
由于目前所有
struct类型均无法获得其实现的interface类型,所以在做struct是否为某interface的子类型的判断时总是返回false。
参数:
- supertype: TypeInfo - 目标类型的类型信息。
 
返回值:
func toString()
public func toString(): String
功能:获取字符串形式的该类型信息。
注意:
内部实现为该类型信息的限定名称字符串。
返回值:
- String - 字符串形式的该类型信息。
 
operator func !=(TypeInfo)
public operator func !=(that: TypeInfo): Bool
功能:判断该类型信息与给定的另一个类型信息是否不等。
参数:
- that: TypeInfo - 被比较相等性的另一个类型信息。
 
返回值:
- Bool - 如果该类型信息的限定名称与 
that不等则返回true,否则返回false。 
operator func ==(TypeInfo)
public operator func ==(that: TypeInfo): Bool
功能:判断该类型信息与给定的另一个类型信息是否相等。
参数:
- that: TypeInfo - 被比较相等性的另一个类型信息。
 
返回值:
- Bool - 如果该类型信息的限定名称与 
that相等则返回true,否则返回false。