- kt
KReflectionFactory变更记录
v1.0.0
添加
功能描述
这是自定义
KClass
和KCallable
相关功能的查找匹配以及invoke
的封装类。
- class
KLazyClassopen class KLazyClass<T> internal constructor(
private val instance: Any,
private val initialize: Boolean,
private val loader: KClassLoaderInitializer?
)
变更记录
v1.0.0
新增
功能描述
懒装载
KClass
实例。
- ext-field
KType.kotlinval KType.kotlin: KClass<*>
变更记录
v1.0.0
添加
功能描述
将
KType
类型擦除转换为KClass
- ext-field
KClassifier.kotlinval KClassifier.kotlin: KClass<*>
变更记录
v1.0.0
添加
功能描述
将
KClassifier
转换为KClass
- ext-field
KClass.topval KClass<*>.top: KDeclarationContainer
变更记录
v1.0.0
添加
功能描述
将
KClass
获取并转换为 *Kt 顶级 Kotlin 文件类
- ext-field
KClass.isTopval KClass<*>.isTop: Boolean
变更记录
v1.0.0
添加
功能描述
检查
KClass
是否是 *Kt 顶级 Kotlin 文件类
- ext-field
KClass.existTopval KClass<*>.existTop: Boolean
变更记录
v1.0.0
添加
功能描述
检查
KClass
是否存在 *Kt 顶级 Kotlin 文件类
- ext-field
KDeclarationContainer.kotlinval KDeclarationContainer.kotlin: KClass<*>
变更记录
v1.0.0
添加
功能描述
将 *Kt 顶级 Kotlin 文件类 转换为
KClass
- ext-field
KDeclarationContainer.declaredTopPropertysval KDeclarationContainer.declaredTopPropertys: List<KProperty<*>>
变更记录
v1.0.0
添加
功能描述
获取 *Kt 顶级 Kotlin 文件类 的所有属性
- ext-field
KDeclarationContainer.declaredTopFunctionsval KDeclarationContainer.declaredTopFunctions: List<KFunction<*>>
变更记录
v1.0.0
添加
功能描述
获取 *Kt 顶级 Kotlin 文件类 的所有函数
- ext-field
KParameter.kotlinval KParameter.kotlin: KClass<*>
变更记录
v1.0.0
添加
功能描述
将
KParameter
转换为KClass
- ext-field
Collection.kotlinval Collection<KParameter>.kotlin: Array<KClass<*>>
变更记录
v1.0.0
添加
功能描述
将一组
KParameter
擦除泛型转换为一组KClass
将
KParameter
转换为KClass
- ext-field
Collection.typeval Collection<KParameter>.type: Array<KType>
变更记录
v1.0.0
添加
功能描述
将一组
KParameter
保留泛型数据转换为一组KType
- ext-field
KProperty.toMutableval KProperty<*>?.toMutable: KMutableProperty<*>
val KProperty<*>?.toMutableOrNull: KMutableProperty<*>?
变更记录
v1.0.0
添加
功能描述
将一组
KProperty
强行转换为KMutableProperty
- ext-method
KProperty.setfun KProperty<*>.set(thisRef: Any?, value: Any?, extensionRef: Any?, isUseMember: Boolean): Unit
operator fun KProperty<*>.set(thisRef: Any?, value: Any?): Unit
变更记录
v1.0.0
添加
功能描述
为
KProperty
修改值
- ext-field
KClass.isSupportReflectionval KClass<*>.isSupportReflection: Boolean
变更记录
v1.0.0
添加
功能描述
检查
KClass
是否支持反射
- ext-field
KProperty.isVarval KProperty<*>.isVar: Boolean
变更记录
v1.0.0
添加
功能描述
检查
KProperty
是否支持是由var关键字修饰的
- ext-field
KProperty.isValval KProperty<*>.isVal: Boolean
变更记录
v1.0.0
添加
功能描述
检查
KProperty
是否支持是由val关键字修饰的
- ext-field
KProperty.isNullableval KProperty<*>.isNullable: Boolean
变更记录
v1.0.0
添加
功能描述
检查
KProperty
属性类型是否是可空类型
- ext-field
KProperty.isNotNullval KProperty<*>.isNotNull: Boolean
变更记录
v1.0.0
添加
功能描述
检查
KProperty
属性类型是否是非空类型
- ext-field
KClass.isArrayOrCollectionval KClass<*>.isArrayOrCollection: Boolean
变更记录
v1.0.0
添加
功能描述
检查
KClass
是否为数组或集合类型
- ext-field
KCallable.declaringClassval KCallable<*>.declaringClass: KClass<*>
变更记录
v1.0.0
添加
功能描述
获取
KCallable
的所属/声明类
- ext-field
KCallable.modifiersval KCallable<*>.modifiers: Int
变更记录
v1.0.0
添加
功能描述
获取
KCallable
Java 能表示的首个描述符
- ext-field
KCallable.returnJavaClassval <V> KCallable<V>.returnJavaClass: Class<V>
变更记录
v1.0.0
添加
功能描述
获取
KCallable
返回类型 Java 形式
- ext-field
KCallable.returnClassval <V> KCallable<V>.returnClass: KClass<V & Any>
变更记录
v1.0.0
添加
功能描述
获取
KCallable
返回类型
- ext-field
KCallable.refval KCallable<*>.ref: CallableReference
变更记录
v1.0.0
添加
功能描述
将
KCallable
转换为CallableReference
静态引用类
- ext-field
KCallable.refClassval KCallable<*>.refClass: KClass<*>
变更记录
v1.0.0
添加
功能描述
通过
KCallable.ref
静态引用类信息获取其声明所属KClass
- ext-field
KCallable.refImplval <T, K : KCallable<T>> K.refImpl: K?
变更记录
v1.0.0
添加
功能描述
通过
KCallable.ref
静态引用类信息获取其运行时K : KCallable
- ext-field
CallableReference.implval CallableReference.impl: KCallable<*>?
变更记录
v1.0.0
添加
功能描述
通过
CallableReference
静态引用类信息获取其运行时KCallable
- ext-field
CallableReference.declaringKotlinval CallableReference.declaringKotlin: KClass<*>
变更记录
v1.0.0
添加
功能描述
通过
CallableReference
静态引用类信息获取其声明所属KClass
- ext-field
KClass.isInterfaceval KClass<*>.isInterface: Boolean
变更记录
v1.0.0
添加
功能描述
检查
KClass
是否为接口
- ext-field
KClass.superclassval KClass<*>.superclass: KClass<*>
变更记录
v1.0.0
添加
功能描述
获取
KClass
的非接口父类
- ext-field
KClass.enclosingClassval KClass<*>.enclosingClass: KClass<*>
变更记录
v1.0.0
添加
功能描述
获取
KClass
的密封类
- ext-field
KClass.simpleNameOrJvmval KClass<*>.simpleNameOrJvm: String
变更记录
v1.0.0
添加
功能描述
获取
KClass
的简易类名
- ext-field
KClass.isAnonymousval KClass<*>.isAnonymous: Boolean
变更记录
v1.0.0
添加
功能描述
检查
KClass
是否为匿名类
- ext-field
KClass.nameval KClass<*>.name: String
变更记录
v1.0.0
添加
功能描述
获取
KClass
完整类名
- ext-field
KClass.hasExtendsval KClass<*>.hasExtends: Boolean
变更记录
v1.0.0
添加
功能描述
检查
KClass
是否有继承 不考虑接口 继承为Any
时算作没有继承
- ext-field
KClass.interfacesval KClass<*>.interfaces: List<KClass<*>>
变更记录
v1.0.0
添加
功能描述
获取
KClass
的所有接口
- ext-field
KClass.genericsval KClass<*>.generics: List<KTypeParameter>
变更记录
v1.0.0
添加
功能描述
获取
KClass
的泛型列表
- ext-field
KClass.genericsval KCallable<*>.generics: List<KTypeParameter>
变更记录
v1.0.0
添加
功能描述
获取
KCallable
的泛型列表
- ext-field
KClassifier.typeval KClassifier.type: KType
变更记录
v1.0.0
添加
功能描述
将
KClassifier
转换为KType
- ext-field
KType.kotlinTypeval KType.kotlinType: KotlinType
变更记录
v1.0.0
添加
功能描述
将
KType
转换为KotlinType
- ext-field
KClass.descriptorval KClass<*>.descriptor: ClassDescriptor
变更记录
v1.0.0
添加
功能描述
获取
KClass
的描述符信息对象
- ext-field
KClass.isObjectval KClass<*>.isObject: Boolean
变更记录
v1.0.0
添加
功能描述
检查
KClass
是否是 object 关键字修饰的对象类
- ext-field
KClass.isObjectval KClass<*>.isObject: Boolean
变更记录
v1.0.0
添加
功能描述
检查
KClass
是否是 object 关键字修饰的对象类
- ext-field
KClass.singletonInstanceval <T : Any> KClass<T>.singletonInstance: T?
变更记录
v1.0.0
添加
功能描述
获取
KClass
的单例实例
- ext-field
KClass.companionSingletonInstanceval KClass<*>.companionSingletonInstance: Any?
变更记录
v1.0.0
添加
功能描述
获取
KClass
的伴生对象实例
- ext-field
KType.isPrimitiveval KType.isPrimitive: Boolean
变更记录
v1.0.0
添加
功能描述
检查
KType
是否是 Java 基本数据类型
- ext-method
KClass.toJavaPrimitiveTypefun KClass<*>.toJavaPrimitiveType(): KClass<*>
变更记录
v1.0.0
添加
功能描述
将
KClass
的构成转换为基本数据类型构成
转换基本类型对于KClass并没有太大影响 Int::class == Int::class.toJavaPrimitiveType()
这仅改变他们的构成,即 Int::class.java != Int::class.toJavaPrimitiveType().java
- ext-field
KType.javaval KType.java: Class<out Any>
变更记录
v1.0.0
添加
功能描述
将
KType
转换为Class
- ext-method
KCallable.findParameterIndexByNamefun KCallable<*>.findParameterIndexByName(name: String, isCountExtensionRef: Boolean, isCountThisRef: Boolean): Int
变更记录
v1.0.0
添加
功能描述
根据参数名获取其
KCallable
中所在的下标
- ext-method
KClass.extendsfun KClass<*>?.extends(other: KClass<*>?): Boolean
变更记录
v1.0.0
添加
功能描述
检查
KClass
是否继承于other
如果当前 KClass
就是 other
也会返回 true
。
如果当前 KClass
为 null
或 other
为 null
会返回 false
。
功能示例
你可以使用此方法来判断两个 KClass
是否存在继承关系。
示例如下
// 假设下面这两个 KClass 就是你需要判断的 KClass
val classA: KClass<*>?
val classB: KClass<*>?
// 判断 A 是否继承于 B
if (classA extends classB) {
// Your code here.
}
- ext-method
KClass.notExtendsfun 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.
}
- ext-method
KClass.implementsfun KClass<*>?.implements(other: KClass<*>?): Boolean
变更记录
v1.0.0
添加
功能描述
检查
KClass
是否实现了other
如果当前 KClass
为 null
或 other
为 null
会返回 false
。
功能示例
你可以使用此方法来判断两个 KClass
是否存在依赖关系。
示例如下
// 假设下面这两个 KClass 就是你需要判断的 KClass
val classA: KClass<*>?
val classB: KClass<*>?
// 判断 A 是否实现了 B 接口类
if (classA implements classB) {
// Your code here.
}
- ext-method
KClass.notImplementsfun 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.
}
- ext-method
Any.isCaseinfix fun Any?.isCase(other: KClass<*>?): Boolean
fun <reified T> Any?.isCase(): Boolean
变更记录
v1.0.0
添加
功能描述
检查
Any
是否可以转换为指定类型
- ext-field
KClass.classLoaderval KClass<*>.classLoader: ClassLoader
变更记录
v1.0.0
添加
功能描述
获取
KClass
使用的ClassLoader
- ext-field
KFunction.isGetterval KFunction<*>.isGetter: Boolean
变更记录
v1.0.0
添加
功能描述
检查
KFunction
是否是 Getter 函数
- ext-field
KFunction.isSetterval KFunction<*>.isSetter: Boolean
变更记录
v1.0.0
添加
功能描述
检查
KFunction
是否是 Setter 函数
- ext-method
KVariousClass.toKClassfun KVariousClass.toKClass(loader: ClassLoader?, initialize: Boolean): KClass<*>
fun KVariousClass.toKClassOrNull(loader: ClassLoader?, initialize: Boolean): KClass<*>?
变更记录
v1.0.0
添加
功能描述
通过
KVariousClass
获取KClass
- ext-method
String.toKClassfun 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() {
// ...
}
}
- ext-method
KClass.toKClassfun 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
- ext-method
KCallable.toKCallablefun <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
- ext-method
KProperty.toKPropertyfun <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
- ext-method
KFunction.toKFunctionfun <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
- method
kclassOffun <reified T> kclassOf(loader: ClassLoader?, initialize: Boolean): KClass<T & Any>
变更记录
v1.0.0
添加
功能描述
通过
T
得到其KClass
实例并转换为实体类。
功能示例
我们要获取一个 KClass
在 Kotlin 下不通过反射时应该这样做。
示例如下
DemoClass::class
现在,你可以直接 cast
一个实例并获取它的 KClass
对象,必须在当前 ClassLoader
下存在。
示例如下
kclassOf<DemoClass>()
若目标存在的 KClass
为 stub
,通过这种方式,你还可以自定义 KClass
所在的 ClassLoader
。
示例如下
val customClassLoader: ClassLoader? = ... // 假设这个就是你的 ClassLoader
kclassOf<DemoClass>(customClassLoader)
- method
lazyKClassfun 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
- ext-method
String.hasKClassfun 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.
}
- ext-method
KClass.hasPropertyfun KClass<*>.hasProperty(initiate: KPropertyConditions): Boolean
变更记录
v1.0.0
添加
功能描述
查找在
KClass
中是否存在指定KProperty
属性
- ext-method
KClass.hasPropertySignaturefun KClass<*>.hasPropertySignature(loader: ClassLoader?, initiate: KPropertySignatureConditions): Boolean
变更记录
v1.0.0
添加
功能描述
查找在
KClass
中是否存在指定KProperty
属性签名
- ext-method
KClass.hasFunctionfun KClass<*>.hasFunction(initiate: KFunctionConditions): Boolean
变更记录
v1.0.0
添加
功能描述
查找在
KClass
中是否存在指定KFunction
函数
- ext-method
KClass.hasFunctionSignaturefun KClass<*>.hasFunctionSignature(loader: ClassLoader?, initiate: KFunctionSignatureConditions): Boolean
变更记录
v1.0.0
添加
功能描述
查找在
KClass
中是否存在指定KFunction
函数签名
- ext-method
KClass.hasConstructorfun KClass<*>.hasConstructor(initiate: KConstructorConditions): Boolean
变更记录
v1.0.0
添加
功能描述
查找在
KClass
中是否存在指定 ConstructorKFunction
构造函数
- ext-method
KCallable.hasModifiersfun KCallable<*>.hasModifiers(conditions: KModifierConditions): Boolean
变更记录
v1.0.0
添加
功能描述
检查在
KCallable
中是否存在匹配的描述符
- ext-method
KClass.hasModifiersfun KClass<*>.hasModifiers(conditions: KModifierConditions): Boolean
变更记录
v1.0.0
添加
功能描述
检查在
KClass
中是否存在匹配的描述符
- ext-method
KClass.propertyfun KClass<*>.property(initiate: KPropertyConditions): KPropertyFinder.Result
变更记录
v1.0.0
添加
功能描述
获取
KClass
中的指定属性
- ext-method
KBaseFinder.BaseInstance.propertyfun KBaseFinder.BaseInstance.property(vararg args: Any?, initiate: KPropertyConditions): KPropertyFinder.Result.Instance
变更记录
v1.0.0
添加
功能描述
对已经查询的
KBaseFinder.BaseInstance
实例执行获取结果,对此结果再次查找其中属性
- ext-method
KClass.propertySignaturefun KClass<*>.propertySignature(loader: ClassLoader?, initiate: KPropertySignatureConditions): KPropertySignatureFinder.Result
变更记录
v1.0.0
添加
功能描述
获取
KClass
中的指定的属性签名实例
- ext-method
KClass.functionfun KClass<*>.function(initiate: KFunctionConditions): KFunctionFinder.Result
变更记录
v1.0.0
添加
功能描述
获取
KClass
中的指定函数
- ext-method
KBaseFinder.BaseInstance.functionfun KBaseFinder.BaseInstance.function(vararg args: Any?, initiate: KFunctionConditions): KFunctionFinder.Result.Instance
变更记录
v1.0.0
添加
功能描述
对已经查询的
KBaseFinder.BaseInstance
实例执行获取结果,对此结果再次查找其中函数
- ext-method
KClass.functionSignaturefun KClass<*>.functionSignature(loader: ClassLoader?, initiate: KFunctionSignatureConditions): KFunctionSignatureFinder.Result
变更记录
v1.0.0
添加
功能描述
获取
KClass
中的指定的函数签名实例
- ext-method
KClass.constructorfun KClass<*>.constructor(initiate: KConstructorConditions): KConstructorFinder.Result
变更记录
v1.0.0
添加
功能描述
获取
KClass
中的指定构造函数
- ext-method
KBaseFinder.BaseInstance.constructorfun KBaseFinder.BaseInstance.constructor(vararg args: Any?, initiate: KConstructorConditions): KConstructorFinder.Result.Instance
变更记录
v1.0.0
添加
功能描述
对已经查询的
KBaseFinder.BaseInstance
实例执行获取结果,对此结果再次查找其中构造函数
- ext-method
KClass.genericSuperfun KClass<*>.genericSuper(initiate: KClassConditions): KGenericClass
变更记录
v1.0.0
添加
功能描述
获取
KClass
的父类泛型操作对象
- ext-method
KClass.genericfun KClass<*>.generic(vararg params: Any, initiate: KTypeBuildConditions): KGenericClass
变更记录
v1.0.0
添加
功能描述
使用指定泛型参数创建包含泛型信息的
KClass
泛型操作对象
- ext-method
KClass.variancefun KClass<*>.variance(variance: KVariance): KTypeProjection
变更记录
v1.0.0
添加
功能描述
使用指定方差创建包含方差信息的
KTypeProjection
方差实例对象
- ext-method
KCallable.genericsfun KCallable<*>.generics(vararg params: Any,initiate: KTypeBuildConditions = {}): KGenericClass
变更记录
v1.0.0
添加
功能描述
获取
KCallable
定义的尖括号的泛型操作对象
- ext-method
KCallable.genericfun KCallable<*>.generic(initiate: KGenericClassDomain): KGenericClass
变更记录
v1.0.0
添加
功能描述
获取
KCallable
返回类型的泛型操作对象
- ext-method
KType.genericfun KType.generic(initiate: KGenericClassDomain): KGenericClass
变更记录
v1.0.0
添加
功能描述
将
KType
转换为泛型操作对象
- ext-method
KType.genericBuildfun KType.genericBuild(vararg params: Any, initiate: KTypeBuildConditions): KGenericClass
变更记录
v1.0.0
添加
功能描述
为当前
KType
附加指定泛型参数后转换为泛型操作对象
- ext-method
KType.variancefun KType.variance(variance: KVariance): KTypeProjection
变更记录
v1.0.0
添加
功能描述
使用指定方差创建包含方差信息的
KTypeProjection
方差实例对象
- ext-method
Collection.genericfun Collection<KType>.generic(initiate: KClassConditions): KGenericClass
变更记录
v1.0.0
添加
功能描述
将一组的
KType
指定其中一个转换为泛型操作对象
- ext-method
Array.genericfun Array<KType>.generic(initiate: KClassConditions): KGenericClass
变更记录
v1.0.0
添加
功能描述
将一组的
KType
指定其中一个转换为泛型操作对象
- ext-method
Any.currentKotlinfun <reified T : Any> T.currentKotlin(ignored: Boolean): KCurrentClass
fun <reified T : Any> T.currentKotlin(ignored: Boolean, initiate: KCurrentClass.() -> Unit): T
变更记录
v1.0.0
添加
功能描述
获得当前实例的类操作对象 Kotlin版本
- ext-method
KClass.buildOffun KClass<*>.buildOf(vararg args: Any?, initiate: KConstructorConditions): Any?
fun <T> KClass<*>.buildOf(vararg args: Any?, initiate: KConstructorConditions): T?
变更记录
v1.0.0
添加
功能描述
通过构造方法创建新实例
- ext-field
KClass.declaredPropertysval KClass<*>.declaredPropertys: Collection<KProperty<*>>
变更记录
v1.0.0
添加
功能描述
获取
KClass
不包括父类的所有声明属性
- ext-field
KCallable.isExtensionval KCallable<*>.isExtension: Boolean
变更记录
v1.0.0
添加
功能描述
检查
KCallable
是否是拓展函数
- ext-field
KCallable.descriptorval KCallable<*>.descriptor: CallableMemberDescriptor?
变更记录
v1.0.0
添加
功能描述
获取
KCallable
描述信息实例
- ext-method
KClass.allFunctionsfun KClass<*>.allFunctions(isAccessible: Boolean, result: (index: Int, function: KFunction<*>) -> Unit): Unit
变更记录
v1.0.0
添加
功能描述
遍历
KClass
的所有函数
- ext-method
KClass.allFunctionSignaturesfun KClass<*>.allFunctionSignatures(loader: ClassLoader?, result: (index: Int, function: KFunctionSignatureSupport) -> Unit): Unit
变更记录
v1.0.0
添加
功能描述
遍历
KClass
的所有函数签名
- ext-method
KClass.allConstructorsfun KClass<*>.allConstructors(isAccessible: Boolean, result: (index: Int, function: KFunction<*>) -> Unit): Unit
变更记录
v1.0.0
添加
功能描述
遍历
KClass
的所有构造函数
- ext-method
KClass.allPropertysfun KClass<*>.allPropertys(isAccessible: Boolean, result: (index: Int, property: KProperty<*>) -> Unit): Unit
变更记录
v1.0.0
添加
功能描述
遍历
KClass
的所有属性
- ext-method
KClass.allPropertySignaturesfun KClass<*>.allPropertySignatures(loader: ClassLoader?, result: (index: Int, property: KPropertySignatureSupport) -> Unit): Unit
变更记录
v1.0.0
添加
功能描述
遍历
KClass
的所有属性签名
- ext-method
Collection.findClassfun 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
- ext-method
Array.findClassfun 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
- ext-method
Collection.findTypefun Collection<KType>.findType(classSet: KClass<*>?): KType
fun <reified T> Collection<KType>.findType(): KType
变更记录
v1.0.0
添加
功能描述
在集合中查找
KType
- ext-method
Array.findTypefun Array<KType>.findType(classSet: KClass<*>?): KType
fun <reified T> Array<KType>.findType(): KType
变更记录
v1.0.0
添加
功能描述
在数组中查找
KType
- ext-method
KFunction.instancefun KFunction<*>.instance(thisRef: Any?, extensionRef: Any?, isUseMember: Boolean): KFunctionFinder.Result.Instance
变更记录
v1.0.0
添加
功能描述
将
KFunction
转换为KFunctionFinder.Result.Instance
可执行类
- ext-method
KFunction.constructorfun KFunction<*>.constructor(isUseMember: Boolean): KConstructorFinder.Result.Instance
变更记录
v1.0.0
添加
功能描述
将 Constructor
KFunction
转换为KConstructorFinder.Result.Instance
可执行类
- ext-method
KProperty.instancefun KProperty<*>.instance(thisRef: Any?, extensionRef: Any?, isUseMember: Boolean): KPropertyFinder.Result.Instance
变更记录
v1.0.0
添加
功能描述
将
KProperty
转换为KPropertyFinder.Result.Instance
可执行类
- ext-method
KConstructorFinder.attachfun <R> KConstructorFinder.attach(function: KFunction<R>, loader: ClassLoader?, isUseMember: Boolean): Unit
变更记录
v1.0.0
添加
功能描述
将构造函数
KFunction
相关内容附加到KConstructorFinder
中。
- ext-method
KPropertyFinder.attachfun <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
中。
- class
BindingInstanceSupportopen 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
实例。
- ext-method
KClass.bindPropertyfun <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
取得/绑定映射关系
- class
BindingInstanceSignatureSupportopen 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
实例。
- ext-method
KClass.bindPropertySignaturefun <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
取得/绑定映射关系