- class
KClassFinderclass KClassFinder internal constructor(classSet: Collection<KClass<*>>?) : KClassBaseFinder
变更记录
v1.0.0
添加
功能描述
KClass
查找类。
- field
fullNamevar fullName: String
变更记录
v1.0.0
添加
功能描述
设置
KClass
完整名称。
只会查找匹配到的 KClass.getName
。
例如 com.demo.Test
需要填写 com.demo.Test
。
- field
simpleNamevar simpleName: String
变更记录
v1.0.0
添加
功能描述
设置
KClass
简单名称。
只会查找匹配到的 KClass.getSimpleName
。
例如 com.demo.Test
只需要填写 Test
。
对于匿名类例如 com.demo.Test$InnerTest
会为空,此时你可以使用 singleName。
- field
singleNamevar singleName: String
变更记录
v1.0.0
添加
功能描述
设置
KClass
独立名称。
设置后将首先使用 KClass.getSimpleName
,若为空则会使用 KClass.getName
进行处理。
例如 com.demo.Test
只需要填写 Test
。
对于匿名类例如 com.demo.Test$InnerTest
只需要填写 Test$InnerTest
。
- method
fromfun from(vararg name: String): FromPackageRules
变更记录
v1.0.0
添加
功能描述
设置在指定包名范围查找当前
KClass
。
设置后仅会在当前 name
开头匹配的包名路径下进行查找,可提升查找速度。
例如 ↓
com.demo.test
com.demo.test.demo
注意
建议设置此参数指定查找范围,否则 KClass 过多时将会非常慢。
- method
modifiersfun modifiers(conditions: KModifierConditions)
变更记录
v1.0.0
添加
功能描述
设置
KClass
标识符筛选条件。
可不设置筛选条件。
- method
fullNamefun fullName(value: String): ClassNameRules
变更记录
v1.0.0
添加
功能描述
设置
KClass
完整名称。
只会查找匹配到的 KClass.getName
。
例如 com.demo.Test
需要填写 com.demo.Test
。
- method
simpleNamefun simpleName(value: String): ClassNameRules
变更记录
v1.0.0
添加
功能描述
设置
KClass
简单名称。
只会查找匹配到的 KClass.getSimpleName
。
例如 com.demo.Test
只需要填写 Test
。
对于匿名类例如 com.demo.Test$InnerTest 会为空
,此时你可以使用 singleName。
- method
singleNamefun singleName(value: String): ClassNameRules
变更记录
v1.0.0
添加
功能描述
设置
KClass
独立名称。
设置后将首先使用 KClass.getSimpleName
,若为空则会使用 KClass.getName
进行处理。
例如 com.demo.Test
只需要填写 Test
。
对于匿名类例如 com.demo.Test$InnerTest
只需要填写 Test$InnerTest
。
- method
fullNamefun fullName(conditions: KNameConditions)
变更记录
v1.0.0
添加
功能描述
设置
KClass
完整名称条件。
只会查找匹配到的 KClass.getName
。
- method
simpleNamefun simpleName(conditions: KNameConditions)
变更记录
v1.0.0
添加
功能描述
设置
KClass
简单名称条件。
只会查找匹配到的 KClass.getSimpleName
。
- method
singleNamefun singleName(conditions: KNameConditions)
变更记录
v1.0.0
添加
功能描述
设置
KClass
独立名称条件。
设置后将首先使用 KClass.getSimpleName
,若为空则会使用 KClass.getName
进行处理。
- method
extendsinline fun <reified T> extends()
变更记录
v1.0.0
添加
功能描述
设置
KClass
继承的父类。
- method
extendsfun extends(vararg name: String)
变更记录
v1.0.0
添加
功能描述
设置
KClass
继承的父类。
会同时查找 name
中所有匹配的父类。
- method
implementsinline fun <reified T> implements()
变更记录
v1.0.0
添加
功能描述
设置
KClass
实现的接口类。
- method
implementsfun implements(vararg name: String)
变更记录
v1.0.0
添加
功能描述
设置
KClass
实现的接口类。
会同时查找 name
中所有匹配的接口类。
- method
anonymousfun anonymous()
变更记录
v1.0.0
添加
功能描述
标识
KClass
为匿名类。
例如 com.demo.Test$1
或 com.demo.Test$InnerTest
。
标识后你可以使用 enclosing 来进一步指定匿名类的 (封闭类) 主类。
- method
noExtendsfun noExtends()
变更记录
v1.0.0
添加
功能描述
设置
KClass
没有任何继承。
此时 KClass
只应该继承于 Any
。
注意
设置此条件后 extends 将失效。
- method
noImplementsfun noImplements()
变更记录
v1.0.0
添加
功能描述
设置
KClass
没有任何接口。
注意
设置此条件后 implements 将失效。
- method
noSuperfun noSuper()
变更记录
v1.0.0
添加
功能描述
设置
KClass
没有任何继承与接口。
此时 KClass
只应该继承于 Any
。
注意
设置此条件后 extends 与 implements 将失效。
- method
enclosinginline fun <reified T> enclosing()
变更记录
v1.0.0
添加
功能描述
设置
KClass
匿名类的 (封闭类) 主类。
- method
enclosingfun enclosing(vararg name: String)
变更记录
v1.0.0
添加
功能描述
设置
KClass
匿名类的 (封闭类) 主类。
会同时查找 name
中所有匹配的 (封闭类) 主类。
- class
FromPackageRulesinner class FromPackageRules internal constructor(private val packages: MutableList<KClassRulesData.PackageRulesData>)
变更记录
v1.0.0
添加
功能描述
包名范围名称过滤匹配条件实现类。
- method
absolutefun absolute()
变更记录
v1.0.0
添加
功能描述
设置包名绝对匹配。
例如有如下包名 ↓
com.demo.test.a
com.demo.test.a.b
com.demo.test.active
若包名条件为 com.demo.test.a
则绝对匹配仅能匹配到第一个。
相反地,不设置以上示例会全部匹配。
- class
ClassNameRulesinner class ClassNameRules internal constructor(private val name: KClassRulesData.NameRulesData)
变更记录
v1.0.0
添加
功能描述
类名匹配条件实现类。
- method
optionalfun optional()
变更记录
v1.0.0
添加
功能描述
设置类名可选。
例如有如下类名 ↓
com.demo.Test
fullName / Test
simpleName
defpackage.a
fullName / a
simpleName
这两个类名都是同一个类,但是在有些版本中被混淆有些版本没有。
此时可设置类名为 com.demo.Test
fullName / Test
simpleName。
这样就可在完全匹配类名情况下使用类名而忽略其它查找条件,否则忽略此条件继续使用其它查找条件。
- method
callableinline fun callable(initiate: KCallableRules.() -> Unit): KCallableRulesResult
变更记录
v1.0.0
添加
功能描述
设置
KClass
满足的KCallable
条件。
- method
propertyinline fun property(initiate: KPropertyRules.() -> Unit): KCallableRulesResult
变更记录
v1.0.0
添加
功能描述
设置
KClass
满足的KProperty
条件。
- method
functioninline fun function(initiate: KFunctionRules.() -> Unit): KCallableRulesResult
变更记录
v1.0.0
添加
功能描述
设置
KClass
满足的KFunction
条件。
- method
constructorinline fun constructor(initiate: ConstructorRules.() -> Unit): KCallableRulesResult
变更记录
v1.0.0
添加
功能描述
设置
KClass
满足的Constructor KFunction
条件。
- class
Resultinner class Result internal constructor(internal var isNotFound: Boolean, internal var throwable: Throwable?) : BaseResult
变更记录
v1.0.0
添加
功能描述
KClass
查找结果实现类。
- method
resultinline fun result(initiate: Result.() -> Unit): Result
变更记录
v1.0.0
添加
功能描述
创建监听结果事件方法体。
- method
getfun get(): KClass<*>?
变更记录
v1.0.0
添加
功能描述
得到
KClass
本身。
若有多个 KClass
结果只会返回第一个。
在查找条件找不到任何结果的时候将返回 null
。
- method
allfun all(): MutableList<KClass<*>>
变更记录
v1.0.0
添加
返回值类型由 HashSet
修改为 MutableList
功能描述
得到
KClass
本身数组。
返回全部查找条件匹配的多个 KClass
实例。
在查找条件找不到任何结果的时候将返回空的 MutableList
。
- method
allfun all(result: (KClass<*>) -> Unit): Result
变更记录
v1.0.0
添加
功能描述
得到
KClass
本身数组 (依次遍历)。
回调全部查找条件匹配的多个 KClass
实例。
在查找条件找不到任何结果的时候将不会执行。
- method
onNoClassDefFoundErrorfun onNoClassDefFoundError(result: (Throwable) -> Unit): Result
变更记录
v1.0.0
添加
功能描述
监听找不到
KClass
时。
- method
ignoredfun ignored(): Result
变更记录
v1.0.0
添加
功能描述
忽略异常并停止打印任何错误日志。
此时若要监听异常结果,你需要手动实现 onNoClassDefFoundError 方法。