Kclass
- Kotlin的KClass和java的Class可以看作同一个含义的类型,并且可以通过.java 和.kotlin方法在KClass和Class之间互相转化。
isCompanion : 是否是伴生对象
isData : 是否是数据类
isSealed : 是否是密封类
objectInstance : object实例(如果是object)
companionObjectInstance : 伴生对象实例
declaredMemberExtensionFunctions : 扩展函数
declaredMemberExtensionProperties : 扩展属性
memberExtensionFunctions : 本类及超类扩展函数
memberExtensionProperties : 本类及超累扩展属性
starProjectedType : 泛型通配类型
KCallable
1.Kotlin把Class中的属性(Kproperty)、函数(KFunction)甚至是构造函数都看作KCallable
// KClass的成员members,返回的是KCallable的集合
override val members: Collection<KCallable<*>>
KCallable提供的API如下
isAbstract:Boolean<KParameter> : 此KCallable是否是抽象的
isFinal:Boolean : 此KCallable是否为final的
isOpen:Boolean : 此KCallable是否未open
name:String : 此KCallable的名称
parameters:List<KParameter> : 调用此KCallable需要的参数
returenType:KType : 此KCallable的返回类型
typeParameters:List<KTypeParameter> : 此KCallable的类型参数
visibility:KVisibility? : 此KCallable的可见性
call(vararg args:Any?) : R : 给定参数调用此KCallable
获取参数信息
- 函数的参数(KParameter) 函数的返回值(KType) 类型参数(KTypeParameter)
- KParameter 参数
- KType 类型
- KTypeParameters类型参数 typeParameters