KReflectionFactory - kt

变更记录

v1.0.0 添加

功能描述

这是自定义 KClassKCallable 相关功能的查找匹配以及 invoke 的封装类。

KLazyClass - class

open class KLazyClass<T> internal constructor(
    private val instance: Any,
    private val initialize: Boolean,
    private val loader: KClassLoaderInitializer?
)

变更记录

v1.0.0 新增

功能描述

懒装载 KClass 实例。

KType.kotlin - ext-field

val KType.kotlin: KClass<*>

变更记录

v1.0.0 添加

功能描述

KType 类型擦除转换为 KClass

KClassifier.kotlin - ext-field

val KClassifier.kotlin: KClass<*>

变更记录

v1.0.0 添加

功能描述

KClassifier 转换为 KClass

KClass.top - ext-field

val KClass<*>.top: KDeclarationContainer

变更记录

v1.0.0 添加

功能描述

KClass 获取并转换为 *Kt 顶级 Kotlin 文件类

KClass.isTop - ext-field

val KClass<*>.isTop: Boolean

变更记录

v1.0.0 添加

功能描述

检查 KClass 是否是 *Kt 顶级 Kotlin 文件类

KClass.existTop - ext-field

val KClass<*>.existTop: Boolean

变更记录

v1.0.0 添加

功能描述

检查 KClass 是否存在 *Kt 顶级 Kotlin 文件类

KDeclarationContainer.kotlin - ext-field

val KDeclarationContainer.kotlin: KClass<*>

变更记录

v1.0.0 添加

功能描述

将 *Kt 顶级 Kotlin 文件类 转换为 KClass

KDeclarationContainer.declaredTopPropertys - ext-field

val KDeclarationContainer.declaredTopPropertys: List<KProperty<*>>

变更记录

v1.0.0 添加

功能描述

获取 *Kt 顶级 Kotlin 文件类 的所有属性

KDeclarationContainer.declaredTopFunctions - ext-field

val KDeclarationContainer.declaredTopFunctions: List<KFunction<*>>

变更记录

v1.0.0 添加

功能描述

获取 *Kt 顶级 Kotlin 文件类 的所有函数

KParameter.kotlin - ext-field

val KParameter.kotlin: KClass<*>

变更记录

v1.0.0 添加

功能描述

KParameter 转换为 KClass

Collection.kotlin - ext-field

val Collection<KParameter>.kotlin: Array<KClass<*>>

变更记录

v1.0.0 添加

功能描述

将一组 KParameter 擦除泛型转换为一组 KClass

KParameter 转换为 KClass

Collection.type - ext-field

val Collection<KParameter>.type: Array<KType>

变更记录

v1.0.0 添加

功能描述

将一组 KParameter 保留泛型数据转换为一组 KType

KProperty.toMutable - ext-field

val KProperty<*>?.toMutable: KMutableProperty<*>
val KProperty<*>?.toMutableOrNull: KMutableProperty<*>?

变更记录

v1.0.0 添加

功能描述

将一组 KProperty 强行转换为 KMutableProperty

KProperty.set - ext-method

fun KProperty<*>.set(thisRef: Any?, value: Any?, extensionRef: Any?, isUseMember: Boolean): Unit
operator fun KProperty<*>.set(thisRef: Any?, value: Any?): Unit

变更记录

v1.0.0 添加

功能描述

KProperty 修改值

KClass.isSupportReflection - ext-field

val KClass<*>.isSupportReflection: Boolean

变更记录

v1.0.0 添加

功能描述

检查 KClass 是否支持反射

KProperty.isVar - ext-field

val KProperty<*>.isVar: Boolean

变更记录

v1.0.0 添加

功能描述

检查 KProperty 是否支持是由var关键字修饰的

KProperty.isVal - ext-field

val KProperty<*>.isVal: Boolean

变更记录

v1.0.0 添加

功能描述

检查 KProperty 是否支持是由val关键字修饰的

KProperty.isNullable - ext-field

val KProperty<*>.isNullable: Boolean

变更记录

v1.0.0 添加

功能描述

检查 KProperty 属性类型是否是可空类型

KProperty.isNotNull - ext-field

val KProperty<*>.isNotNull: Boolean

变更记录

v1.0.0 添加

功能描述

检查 KProperty 属性类型是否是非空类型

KClass.isArrayOrCollection - ext-field

val KClass<*>.isArrayOrCollection: Boolean

变更记录

v1.0.0 添加

功能描述

检查 KClass 是否为数组或集合类型

KCallable.declaringClass - ext-field

val KCallable<*>.declaringClass: KClass<*>

变更记录

v1.0.0 添加

功能描述

获取 KCallable 的所属/声明类

KCallable.modifiers - ext-field

val KCallable<*>.modifiers: Int

变更记录

v1.0.0 添加

功能描述

获取 KCallable Java 能表示的首个描述符

KCallable.returnJavaClass - ext-field

val <V> KCallable<V>.returnJavaClass: Class<V>

变更记录

v1.0.0 添加

功能描述

获取 KCallable 返回类型 Java 形式

KCallable.returnClass - ext-field

val <V> KCallable<V>.returnClass: KClass<V & Any>

变更记录

v1.0.0 添加

功能描述

获取 KCallable 返回类型

KCallable.ref - ext-field

val KCallable<*>.ref: CallableReference

变更记录

v1.0.0 添加

功能描述

KCallable 转换为 CallableReference 静态引用类

KCallable.refClass - ext-field

val KCallable<*>.refClass: KClass<*>

变更记录

v1.0.0 添加

功能描述

通过 KCallable.ref 静态引用类信息获取其声明所属 KClass

KCallable.refImpl - ext-field

val <T, K : KCallable<T>> K.refImpl: K?

变更记录

v1.0.0 添加

功能描述

通过 KCallable.ref 静态引用类信息获取其运行时 K : KCallable

CallableReference.impl - ext-field

val CallableReference.impl: KCallable<*>?

变更记录

v1.0.0 添加

功能描述

通过 CallableReference 静态引用类信息获取其运行时 KCallable

CallableReference.declaringKotlin - ext-field

val CallableReference.declaringKotlin: KClass<*>

变更记录

v1.0.0 添加

功能描述

通过 CallableReference 静态引用类信息获取其声明所属 KClass

KClass.isInterface - ext-field

val KClass<*>.isInterface: Boolean

变更记录

v1.0.0 添加

功能描述

检查 KClass 是否为接口

KClass.superclass - ext-field

val KClass<*>.superclass: KClass<*>

变更记录

v1.0.0 添加

功能描述

获取 KClass 的非接口父类

KClass.enclosingClass - ext-field

val KClass<*>.enclosingClass: KClass<*>

变更记录

v1.0.0 添加

功能描述

获取 KClass 的密封类

KClass.simpleNameOrJvm - ext-field

val KClass<*>.simpleNameOrJvm: String

变更记录

v1.0.0 添加

功能描述

获取 KClass 的简易类名

KClass.isAnonymous - ext-field

val KClass<*>.isAnonymous: Boolean

变更记录

v1.0.0 添加

功能描述

检查 KClass 是否为匿名类

KClass.name - ext-field

val KClass<*>.name: String

变更记录

v1.0.0 添加

功能描述

获取 KClass 完整类名

KClass.hasExtends - ext-field

val KClass<*>.hasExtends: Boolean

变更记录

v1.0.0 添加

功能描述

检查 KClass 是否有继承 不考虑接口 继承为 Any 时算作没有继承

KClass.interfaces - ext-field

val KClass<*>.interfaces: List<KClass<*>>

变更记录

v1.0.0 添加

功能描述

获取 KClass 的所有接口

KClass.generics - ext-field

val KClass<*>.generics: List<KTypeParameter>

变更记录

v1.0.0 添加

功能描述

获取 KClass 的泛型列表

KClass.generics - ext-field

val KCallable<*>.generics: List<KTypeParameter>

变更记录

v1.0.0 添加

功能描述

获取 KCallable 的泛型列表

KClassifier.type - ext-field

val KClassifier.type: KType

变更记录

v1.0.0 添加

功能描述

KClassifier 转换为 KType

KType.kotlinType - ext-field

val KType.kotlinType: KotlinType

变更记录

v1.0.0 添加

功能描述

KType 转换为 KotlinType

KClass.descriptor - ext-field

val KClass<*>.descriptor: ClassDescriptor

变更记录

v1.0.0 添加

功能描述

获取 KClass 的描述符信息对象

KClass.isObject - ext-field

val KClass<*>.isObject: Boolean

变更记录

v1.0.0 添加

功能描述

检查 KClass 是否是 object 关键字修饰的对象类

KClass.isObject - ext-field

val KClass<*>.isObject: Boolean

变更记录

v1.0.0 添加

功能描述

检查 KClass 是否是 object 关键字修饰的对象类

KClass.singletonInstance - ext-field

val <T : Any> KClass<T>.singletonInstance: T?

变更记录

v1.0.0 添加

功能描述

获取 KClass 的单例实例

KClass.companionSingletonInstance - ext-field

val KClass<*>.companionSingletonInstance: Any?

变更记录

v1.0.0 添加

功能描述

获取 KClass 的伴生对象实例

KType.isPrimitive - ext-field

val KType.isPrimitive: Boolean

变更记录

v1.0.0 添加

功能描述

检查 KType 是否是 Java 基本数据类型

KClass.toJavaPrimitiveType - ext-method

fun KClass<*>.toJavaPrimitiveType(): KClass<*>

变更记录

v1.0.0 添加

功能描述

KClass 的构成转换为基本数据类型构成

转换基本类型对于KClass并没有太大影响 Int::class == Int::class.toJavaPrimitiveType() 这仅改变他们的构成,即 Int::class.java != Int::class.toJavaPrimitiveType().java

KType.java - ext-field

val KType.java: Class<out Any>

变更记录

v1.0.0 添加

功能描述

KType 转换为 Class

KCallable.findParameterIndexByName - ext-method

fun KCallable<*>.findParameterIndexByName(name: String, isCountExtensionRef: Boolean, isCountThisRef: Boolean): Int

变更记录

v1.0.0 添加

功能描述

根据参数名获取其 KCallable 中所在的下标

KClass.extends - ext-method

fun KClass<*>?.extends(other: KClass<*>?): Boolean

变更记录

v1.0.0 添加

功能描述

检查 KClass 是否继承于 other

如果当前 KClass 就是 other 也会返回 true

如果当前 KClassnullothernull 会返回 false

功能示例

你可以使用此方法来判断两个 KClass 是否存在继承关系。

示例如下

// 假设下面这两个 KClass 就是你需要判断的 KClass
val classA: KClass<*>?
val classB: KClass<*>?
// 判断 A 是否继承于 B
if (classA extends classB) {
    // Your code here.
}

KClass.notExtends - ext-method

fun KClass<*>?.notExtends(other: KClass<*>?): Boolean

变更记录

v1.0.0 添加

功能描述

检查 KClass 是否不继承于 other

此方法相当于 extends 的反向判断。

功能示例

你可以使用此方法来判断两个 KClass 是否不存在继承关系。

示例如下

// 假设下面这两个 KClass 就是你需要判断的 KClass
val classA: KClass<*>?
val classB: KClass<*>?
// 判断 A 是否不继承于 B
if (classA notExtends classB) {
    // Your code here.
}

KClass.implements - ext-method

fun KClass<*>?.implements(other: KClass<*>?): Boolean

变更记录

v1.0.0 添加

功能描述

检查 KClass 是否实现了 other

如果当前 KClassnullothernull 会返回 false

功能示例

你可以使用此方法来判断两个 KClass 是否存在依赖关系。

示例如下

// 假设下面这两个 KClass 就是你需要判断的 KClass
val classA: KClass<*>?
val classB: KClass<*>?
// 判断 A 是否实现了 B 接口类
if (classA implements classB) {
    // Your code here.
}

KClass.notImplements - ext-method

fun KClass<*>?.notImplements(other: KClass<*>?): Boolean

变更记录

v1.0.0 添加

功能描述

检查 KClass 是否未实现 other

此方法相当于 implements 的反向判断。

功能示例

你可以使用此方法来判断两个 KClass 是否不存在依赖关系。

示例如下

// 假设下面这两个 KClass 就是你需要判断的 KClass
val classA: KClass<*>?
val classB: KClass<*>?
// 判断 A 是否未实现 B 接口类
if (classA notImplements classB) {
    // Your code here.
}

Any.isCase - ext-method

infix fun Any?.isCase(other: KClass<*>?): Boolean
fun <reified T> Any?.isCase(): Boolean

变更记录

v1.0.0 添加

功能描述

检查 Any 是否可以转换为指定类型

KClass.classLoader - ext-field

val KClass<*>.classLoader: ClassLoader

变更记录

v1.0.0 添加

功能描述

获取 KClass 使用的 ClassLoader

KFunction.isGetter - ext-field

val KFunction<*>.isGetter: Boolean

变更记录

v1.0.0 添加

功能描述

检查 KFunction 是否是 Getter 函数

KFunction.isSetter - ext-field

val KFunction<*>.isSetter: Boolean

变更记录

v1.0.0 添加

功能描述

检查 KFunction 是否是 Setter 函数

KVariousClass.toKClass - ext-method

fun KVariousClass.toKClass(loader: ClassLoader?, initialize: Boolean): KClass<*>
fun KVariousClass.toKClassOrNull(loader: ClassLoader?, initialize: Boolean): KClass<*>?

变更记录

v1.0.0 添加

功能描述

通过 KVariousClass 获取 KClass

String.toKClass - ext-method

fun String.toKClass(loader: ClassLoader?, initialize: Boolean): KClass<*>
fun <reified T> String.toKClass(loader: ClassLoader?, initialize: Boolean): KClass<T & Any>
fun String.toKClassOrNull(loader: ClassLoader?, initialize: Boolean): KClass<*>?
fun <reified T> String.toKClassOrNull(loader: ClassLoader?, initialize: Boolean): KClass<T & Any>?

变更记录

v1.0.0 添加

功能描述

通过字符串类名转换为指定 ClassLoader 中的实体类

带 OrNull 的版本找不到 KClass 会返回 null,不会抛出异常。

功能示例

你可以直接填写你要查找的目标 KClass,必须在默认 ClassLoader 下存在。

示例如下

"com.example.demo.DemoClass".toKClass()

你还可以自定义 KClass 所在的 ClassLoader

示例如下

val customClassLoader: ClassLoader? = ... // 假设这个就是你的 ClassLoader
"com.example.demo.DemoClass".toKClass(customClassLoader)

你还可以指定 KClass 的目标类型。

示例如下

// 指定的 DemoClass 必须存在或为可访问的 stub
"com.example.demo.DemoClass".toKClass<DemoClass>()

你还可以设置在获取到这个 KClass 时是否自动执行其默认的静态方法块,默认情况下不会执行。

示例如下

// 获取并执行 DemoClass 默认的静态方法块
"com.example.demo.DemoClass".toKClass(initialize = true)

默认的静态方法块在 Java 中使用如下方式定义。

示例如下

public class DemoClass {

    static {
        // 这里是静态方法块的内容
    }

    public DemoClass() {
        // ...
    }
}

KClass.toKClass - ext-method

fun KClass<*>.toKClass(loader: ClassLoader?, initialize: Boolean): KClass<*>
fun <reified T> KClass<T & Any>.toKClass(loader: ClassLoader?, initialize: Boolean): KClass<T & Any>
fun KClass<*>.toKClassOrNull(loader: ClassLoader?, initialize: Boolean): KClass<*>?
fun <reified T> KClass<T & Any>.toKClassOrNull(loader: ClassLoader?, initialize: Boolean): KClass<T & Any>?

变更记录

v1.0.0 添加

功能描述

通过 KClass 的类名使用指定 ClassLoader 转换为新的 KClass

KCallable.toKCallable - ext-method

fun <K : KCallable<V>, V> K.toKCallable(clazz: KClass<*>?, loader: ClassLoader?, isUseMember: Boolean): K
fun <K : KCallable<V>, V> K.toKCallableOrNull(clazz: KClass<*>?, loader: ClassLoader?, isUseMember: Boolean): K?

变更记录

v1.0.0 添加

功能描述

KCallable 使用指定类与 ClassLoader 转换为新的 KCallable

KProperty.toKProperty - ext-method

fun <K : KProperty<V>, V> K.toKProperty(clazz: KClass<*>?, loader: ClassLoader?, isUseMember: Boolean): K
fun <K : KProperty<V>, V> K.toKPropertyOrNull(clazz: KClass<*>?, loader: ClassLoader?, isUseMember: Boolean): K?

变更记录

v1.0.0 添加

功能描述

KProperty 使用指定类与 ClassLoader 转换为新的 KProperty

KFunction.toKFunction - ext-method

fun <K : KFunction<V>, V> K.toKFunction(clazz: KClass<*>?, loader: ClassLoader?, isUseMember: Boolean): K
fun <K : KFunction<V>, V> K.toKFunctionOrNull(clazz: KClass<*>?, loader: ClassLoader?, isUseMember: Boolean): K?

变更记录

v1.0.0 添加

功能描述

KFunction 使用指定类与 ClassLoader 转换为新的 KFunction

kclassOf - method

fun <reified T> kclassOf(loader: ClassLoader?, initialize: Boolean): KClass<T & Any>

变更记录

v1.0.0 添加

功能描述

通过 T 得到其 KClass 实例并转换为实体类。

功能示例

我们要获取一个 KClass 在 Kotlin 下不通过反射时应该这样做。

示例如下

DemoClass::class

现在,你可以直接 cast 一个实例并获取它的 KClass 对象,必须在当前 ClassLoader 下存在。

示例如下

kclassOf<DemoClass>()

若目标存在的 KClassstub,通过这种方式,你还可以自定义 KClass 所在的 ClassLoader

示例如下

val customClassLoader: ClassLoader? = ... // 假设这个就是你的 ClassLoader
kclassOf<DemoClass>(customClassLoader)

lazyKClass - method

fun lazyKClass(name: String, initialize: Boolean, loader: KClassLoaderInitializer?): KLazyClass.NonNull<Any>
fun <reified T> lazyKClass(name: String, initialize: Boolean, noinline loader: KClassLoaderInitializer?): KLazyClass.NonNull<T>
fun lazyKClass(variousClass: KVariousClass, initialize: Boolean, loader: KClassLoaderInitializer?): KLazyClass.NonNull<Any>
fun lazyKClassOrNull(name: String, initialize: Boolean, loader: KClassLoaderInitializer?): KLazyClass.Nullable<Any>
fun <reified T> lazyKClassOrNull(name: String, initialize: Boolean, loader: KClassLoaderInitializer?): KLazyClass.Nullable<T>
fun lazyKClassOrNull(variousClass: KVariousClass, initialize: Boolean, loader: KClassLoaderInitializer?): KLazyClass.Nullable<Any>

变更记录

v1.0.0 添加

功能描述

懒加载获取 KClass

String.hasKClass - ext-method

fun String.hasKClass(loader: ClassLoader?): Boolean

变更记录

v1.0.0 添加

功能描述

通过字符串类名使用指定的 ClassLoader 查找是否存在 KClass

功能示例

你可以轻松的使用此方法判断字符串中的类是否存在。

示例如下

if("com.example.demo.DemoClass".hasKClass()) {
    // Your code here.
}

填入方法中的 loader 参数可判断指定的 ClassLoader 中的 KClass 是否存在。

示例如下

val customClassLoader: ClassLoader? = ... // 假设这个就是你的 ClassLoader
if("com.example.demo.DemoClass".hasKClass(customClassLoader)) {
    // Your code here.
}

KClass.hasProperty - ext-method

fun KClass<*>.hasProperty(initiate: KPropertyConditions): Boolean

变更记录

v1.0.0 添加

功能描述

查找在KClass中是否存在指定 KProperty 属性

KClass.hasPropertySignature - ext-method

fun KClass<*>.hasPropertySignature(loader: ClassLoader?, initiate: KPropertySignatureConditions): Boolean

变更记录

v1.0.0 添加

功能描述

查找在KClass中是否存在指定 KProperty 属性签名

KClass.hasFunction - ext-method

fun KClass<*>.hasFunction(initiate: KFunctionConditions): Boolean

变更记录

v1.0.0 添加

功能描述

查找在KClass中是否存在指定 KFunction 函数

KClass.hasFunctionSignature - ext-method

fun KClass<*>.hasFunctionSignature(loader: ClassLoader?, initiate: KFunctionSignatureConditions): Boolean

变更记录

v1.0.0 添加

功能描述

查找在KClass中是否存在指定 KFunction 函数签名

KClass.hasConstructor - ext-method

fun KClass<*>.hasConstructor(initiate: KConstructorConditions): Boolean

变更记录

v1.0.0 添加

功能描述

查找在KClass中是否存在指定 Constructor KFunction 构造函数

KCallable.hasModifiers - ext-method

fun KCallable<*>.hasModifiers(conditions: KModifierConditions): Boolean

变更记录

v1.0.0 添加

功能描述

检查在 KCallable 中是否存在匹配的描述符

KClass.hasModifiers - ext-method

fun KClass<*>.hasModifiers(conditions: KModifierConditions): Boolean

变更记录

v1.0.0 添加

功能描述

检查在 KClass 中是否存在匹配的描述符

KClass.property - ext-method

fun KClass<*>.property(initiate: KPropertyConditions): KPropertyFinder.Result

变更记录

v1.0.0 添加

功能描述

获取 KClass 中的指定属性

KBaseFinder.BaseInstance.property - ext-method

fun KBaseFinder.BaseInstance.property(vararg args: Any?, initiate: KPropertyConditions): KPropertyFinder.Result.Instance

变更记录

v1.0.0 添加

功能描述

对已经查询的 KBaseFinder.BaseInstance 实例执行获取结果,对此结果再次查找其中属性

KClass.propertySignature - ext-method

fun KClass<*>.propertySignature(loader: ClassLoader?, initiate: KPropertySignatureConditions): KPropertySignatureFinder.Result

变更记录

v1.0.0 添加

功能描述

获取 KClass 中的指定的属性签名实例

KClass.function - ext-method

fun KClass<*>.function(initiate: KFunctionConditions): KFunctionFinder.Result

变更记录

v1.0.0 添加

功能描述

获取 KClass 中的指定函数

KBaseFinder.BaseInstance.function - ext-method

fun KBaseFinder.BaseInstance.function(vararg args: Any?, initiate: KFunctionConditions): KFunctionFinder.Result.Instance

变更记录

v1.0.0 添加

功能描述

对已经查询的 KBaseFinder.BaseInstance 实例执行获取结果,对此结果再次查找其中函数

KClass.functionSignature - ext-method

fun KClass<*>.functionSignature(loader: ClassLoader?, initiate: KFunctionSignatureConditions): KFunctionSignatureFinder.Result

变更记录

v1.0.0 添加

功能描述

获取 KClass 中的指定的函数签名实例

KClass.constructor - ext-method

fun KClass<*>.constructor(initiate: KConstructorConditions): KConstructorFinder.Result

变更记录

v1.0.0 添加

功能描述

获取 KClass 中的指定构造函数

KBaseFinder.BaseInstance.constructor - ext-method

fun KBaseFinder.BaseInstance.constructor(vararg args: Any?, initiate: KConstructorConditions): KConstructorFinder.Result.Instance

变更记录

v1.0.0 添加

功能描述

对已经查询的 KBaseFinder.BaseInstance 实例执行获取结果,对此结果再次查找其中构造函数

KClass.genericSuper - ext-method

fun KClass<*>.genericSuper(initiate: KClassConditions): KGenericClass

变更记录

v1.0.0 添加

功能描述

获取 KClass 的父类泛型操作对象

KClass.generic - ext-method

fun KClass<*>.generic(vararg params: Any, initiate: KTypeBuildConditions): KGenericClass

变更记录

v1.0.0 添加

功能描述

使用指定泛型参数创建包含泛型信息的 KClass 泛型操作对象

KClass.variance - ext-method

fun KClass<*>.variance(variance: KVariance): KTypeProjection

变更记录

v1.0.0 添加

功能描述

使用指定方差创建包含方差信息的 KTypeProjection 方差实例对象

KCallable.generics - ext-method

fun KCallable<*>.generics(vararg params: Any,initiate: KTypeBuildConditions = {}): KGenericClass

变更记录

v1.0.0 添加

功能描述

获取 KCallable 定义的尖括号的泛型操作对象

KCallable.generic - ext-method

fun KCallable<*>.generic(initiate: KGenericClassDomain): KGenericClass

变更记录

v1.0.0 添加

功能描述

获取 KCallable 返回类型的泛型操作对象

KType.generic - ext-method

fun KType.generic(initiate: KGenericClassDomain): KGenericClass

变更记录

v1.0.0 添加

功能描述

KType 转换为泛型操作对象

KType.genericBuild - ext-method

fun KType.genericBuild(vararg params: Any, initiate: KTypeBuildConditions): KGenericClass

变更记录

v1.0.0 添加

功能描述

为当前 KType 附加指定泛型参数后转换为泛型操作对象

KType.variance - ext-method

fun KType.variance(variance: KVariance): KTypeProjection

变更记录

v1.0.0 添加

功能描述

使用指定方差创建包含方差信息的 KTypeProjection 方差实例对象

Collection.generic - ext-method

fun Collection<KType>.generic(initiate: KClassConditions): KGenericClass

变更记录

v1.0.0 添加

功能描述

将一组的 KType 指定其中一个转换为泛型操作对象

Array.generic - ext-method

fun Array<KType>.generic(initiate: KClassConditions): KGenericClass

变更记录

v1.0.0 添加

功能描述

将一组的 KType 指定其中一个转换为泛型操作对象

Any.currentKotlin - ext-method

fun <reified T : Any> T.currentKotlin(ignored: Boolean): KCurrentClass
fun <reified T : Any> T.currentKotlin(ignored: Boolean, initiate: KCurrentClass.() -> Unit): T

变更记录

v1.0.0 添加

功能描述

获得当前实例的类操作对象 Kotlin版本

KClass.buildOf - ext-method

fun KClass<*>.buildOf(vararg args: Any?, initiate: KConstructorConditions): Any?
fun <T> KClass<*>.buildOf(vararg args: Any?, initiate: KConstructorConditions): T?

变更记录

v1.0.0 添加

功能描述

通过构造方法创建新实例

KClass.declaredPropertys - ext-field

val KClass<*>.declaredPropertys: Collection<KProperty<*>>

变更记录

v1.0.0 添加

功能描述

获取 KClass 不包括父类的所有声明属性

KCallable.isExtension - ext-field

val KCallable<*>.isExtension: Boolean

变更记录

v1.0.0 添加

功能描述

检查 KCallable 是否是拓展函数

KCallable.descriptor - ext-field

val KCallable<*>.descriptor: CallableMemberDescriptor?

变更记录

v1.0.0 添加

功能描述

获取 KCallable 描述信息实例

KClass.allFunctions - ext-method

fun KClass<*>.allFunctions(isAccessible: Boolean, result: (index: Int, function: KFunction<*>) -> Unit): Unit

变更记录

v1.0.0 添加

功能描述

遍历 KClass 的所有函数

KClass.allFunctionSignatures - ext-method

fun KClass<*>.allFunctionSignatures(loader: ClassLoader?, result: (index: Int, function: KFunctionSignatureSupport) -> Unit): Unit

变更记录

v1.0.0 添加

功能描述

遍历 KClass 的所有函数签名

KClass.allConstructors - ext-method

fun KClass<*>.allConstructors(isAccessible: Boolean, result: (index: Int, function: KFunction<*>) -> Unit): Unit

变更记录

v1.0.0 添加

功能描述

遍历 KClass 的所有构造函数

KClass.allPropertys - ext-method

fun KClass<*>.allPropertys(isAccessible: Boolean, result: (index: Int, property: KProperty<*>) -> Unit): Unit

变更记录

v1.0.0 添加

功能描述

遍历 KClass 的所有属性

KClass.allPropertySignatures - ext-method

fun KClass<*>.allPropertySignatures(loader: ClassLoader?, result: (index: Int, property: KPropertySignatureSupport) -> Unit): Unit

变更记录

v1.0.0 添加

功能描述

遍历 KClass 的所有属性签名

Collection.findClass - ext-method

fun Collection<KClass<*>>.findClass(initiate: KClassConditions): KClassFinder.Result
fun Collection<String>.findClass(loader: ClassLoader?, initialize: Boolean, initiate: KClassConditions): KClassFinder.Result
fun Collection<KType>.findClass(initiate: KClassConditions): KClassFinder.Result

变更记录

v1.0.0 添加

功能描述

在集合中查找或筛选 KClass

Array.findClass - ext-method

fun Array<KClass<*>>.findClass(initiate: KClassConditions): KClassFinder.Result
fun Array<String>.findClass(loader: ClassLoader?, initialize: Boolean, initiate: KClassConditions): KClassFinder.Result
fun Array<KType>.findClass(initiate: KClassConditions): KClassFinder.Result

变更记录

v1.0.0 添加

功能描述

在数组中查找或筛选 KClass

Collection.findType - ext-method

fun Collection<KType>.findType(classSet: KClass<*>?): KType
fun <reified T> Collection<KType>.findType(): KType

变更记录

v1.0.0 添加

功能描述

在集合中查找 KType

Array.findType - ext-method

fun Array<KType>.findType(classSet: KClass<*>?): KType
fun <reified T> Array<KType>.findType(): KType

变更记录

v1.0.0 添加

功能描述

在数组中查找 KType

KFunction.instance - ext-method

fun KFunction<*>.instance(thisRef: Any?, extensionRef: Any?, isUseMember: Boolean): KFunctionFinder.Result.Instance

变更记录

v1.0.0 添加

功能描述

KFunction 转换为 KFunctionFinder.Result.Instance 可执行类

KFunction.constructor - ext-method

fun KFunction<*>.constructor(isUseMember: Boolean): KConstructorFinder.Result.Instance

变更记录

v1.0.0 添加

功能描述

将 ConstructorKFunction 转换为 KConstructorFinder.Result.Instance 可执行类

KProperty.instance - ext-method

fun KProperty<*>.instance(thisRef: Any?, extensionRef: Any?, isUseMember: Boolean): KPropertyFinder.Result.Instance

变更记录

v1.0.0 添加

功能描述

KProperty 转换为 KPropertyFinder.Result.Instance 可执行类

KConstructorFinder.attach - ext-method

fun <R> KConstructorFinder.attach(function: KFunction<R>, loader: ClassLoader?, isUseMember: Boolean): Unit

变更记录

v1.0.0 添加

功能描述

将构造函数KFunction相关内容附加到KConstructorFinder中。

KPropertyFinder.attach - ext-method

fun <R> KPropertyFinder.attach(property: KProperty<R>, loader: ClassLoader?, isUseMember: Boolean): Unit
fun <R> KPropertyFinder.attachStatic(property: KProperty0<R>, loader: ClassLoader?, isUseMember: Boolean): Unit
fun <ExpandThis, R> KPropertyFinder.attach(property: KProperty2<*, ExpandThis, R>, loader: ClassLoader?, isUseMember: Boolean): Unit

变更记录

v1.0.0 添加

功能描述

将属性KProperty相关内容附加到KPropertyFinder中。

BindingInstanceSupport - class

open class BindingInstanceSupport<T>(
    private val thisRefClass: KClass<*>,
    private var thisRef: Any?,
    private val extensionRef: Any?,
    private val isUseMember: Boolean,
    private val isLazy: Boolean,
    private val mappingRules: KPropertyFinder.(property: KProperty<*>) -> Unit
)

变更记录

v1.0.0 新增

功能描述

委托绑定映射 KProperty 实例。

KClass.bindProperty - ext-method

fun <T> KClass<*>.bindProperty(
    thisRef: Any?,
    extensionRef: Any?,
    isUseMember: Boolean,
    isLazy: Boolean,
    mappingRules: KPropertyFinder.(property: KProperty<*>) -> Unit
): BindingInstanceSupport.NonNull<T>
fun <T> KClass<*>.bindPropertyOrNull(
    thisRef: Any?,
    extensionRef: Any?,
    isUseMember: Boolean,
    isLazy: Boolean,
    mappingRules: KPropertyFinder.(property: KProperty<*>) -> Unit
): BindingInstanceSupport.Nullable<T>

变更记录

v1.0.0 添加

功能描述

与指定 KProperty 取得/绑定映射关系

BindingInstanceSignatureSupport - class

open class BindingInstanceSignatureSupport<T>(
    private val thisRefClass: KClass<*>,
    private var thisRef: Any?,
    private val declaringClass: KClass<*>? = null,
    private val loader: ClassLoader? = null,
    private val isLazy: Boolean,
    private val mappingRules: KPropertySignatureFinder.(property: KProperty<*>) -> Unit
)

变更记录

v1.0.0 新增

功能描述

委托绑定映射 KPropertySignature 实例。

KClass.bindPropertySignature - ext-method

fun <T> KClass<*>.bindPropertySignature(
    thisRef: Any?,
    declaringClass: KClass<*>? = null,
    loader: ClassLoader? = null,
    isLazy: Boolean,
    mappingRules: KPropertySignatureFinder.(property: KProperty<*>) -> Unit
): BindingInstanceSupport.NonNull<T>
fun <T> KClass<*>.bindPropertySignatureOrNull(
    thisRef: Any?,
    declaringClass: KClass<*>? = null,
    loader: ClassLoader? = null,
    isLazy: Boolean,
    mappingRules: KPropertySignatureFinder.(property: KProperty<*>) -> Unit
): BindingInstanceSupport.Nullable<T>

变更记录

v1.0.0 添加

功能描述

与指定 KPropertySignature 取得/绑定映射关系