mirror of
https://github.com/HighCapable/YukiHookAPI.git
synced 2025-09-06 02:35:40 +08:00
refactor: make appClassLoader nullable
This commit is contained in:
@@ -83,16 +83,22 @@ open class PackageParam internal constructor(internal var wrapper: PackageParamW
|
|||||||
/** 当前设置的 [ClassLoader] */
|
/** 当前设置的 [ClassLoader] */
|
||||||
private var currentClassLoader: ClassLoader? = null
|
private var currentClassLoader: ClassLoader? = null
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取 [appClassLoader] 装载实例
|
||||||
|
* @return [ClassLoaderInitializer]
|
||||||
|
*/
|
||||||
|
private val appLoaderInit get(): ClassLoaderInitializer = { appClassLoader }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取、设置当前 Hook APP 的 [ClassLoader]
|
* 获取、设置当前 Hook APP 的 [ClassLoader]
|
||||||
*
|
*
|
||||||
* 你可以在这里手动设置当前 Hook APP 的 [ClassLoader] - 默认情况下会自动获取
|
* 你可以在这里手动设置当前 Hook APP 的 [ClassLoader] - 默认情况下会自动获取
|
||||||
*
|
*
|
||||||
* - 如果设置了错误或无效的 [ClassLoader] 会造成功能异常 - 请谨慎操作
|
* - 如果设置了错误或无效的 [ClassLoader] 会造成功能异常 - 请谨慎操作
|
||||||
* @return [ClassLoader]
|
* @return [ClassLoader] or null
|
||||||
*/
|
*/
|
||||||
var appClassLoader
|
var appClassLoader
|
||||||
get() = currentClassLoader ?: wrapper?.appClassLoader ?: AppParasitics.currentApplication?.classLoader ?: AppParasitics.baseClassLoader
|
get() = currentClassLoader ?: wrapper?.appClassLoader ?: AppParasitics.currentApplication?.classLoader
|
||||||
set(value) {
|
set(value) {
|
||||||
currentClassLoader = value
|
currentClassLoader = value
|
||||||
}
|
}
|
||||||
@@ -575,7 +581,7 @@ open class PackageParam internal constructor(internal var wrapper: PackageParamW
|
|||||||
* @param loader [ClassLoader] 装载实例 - 不填使用 [appClassLoader]
|
* @param loader [ClassLoader] 装载实例 - 不填使用 [appClassLoader]
|
||||||
* @return [LazyClass.NonNull]
|
* @return [LazyClass.NonNull]
|
||||||
*/
|
*/
|
||||||
fun lazyClass(name: String, initialize: Boolean = false, loader: ClassLoaderInitializer? = { appClassLoader }) =
|
fun lazyClass(name: String, initialize: Boolean = false, loader: ClassLoaderInitializer? = appLoaderInit) =
|
||||||
lazyClassGlobal(name, initialize, loader)
|
lazyClassGlobal(name, initialize, loader)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -586,7 +592,7 @@ open class PackageParam internal constructor(internal var wrapper: PackageParamW
|
|||||||
* @return [LazyClass.NonNull]<[T]>
|
* @return [LazyClass.NonNull]<[T]>
|
||||||
*/
|
*/
|
||||||
@JvmName("lazyClass_Generics")
|
@JvmName("lazyClass_Generics")
|
||||||
inline fun <reified T> lazyClass(name: String, initialize: Boolean = false, noinline loader: ClassLoaderInitializer? = { appClassLoader }) =
|
inline fun <reified T> lazyClass(name: String, initialize: Boolean = false, noinline loader: ClassLoaderInitializer? = appLoaderInit) =
|
||||||
lazyClassGlobal<T>(name, initialize, loader)
|
lazyClassGlobal<T>(name, initialize, loader)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -596,7 +602,7 @@ open class PackageParam internal constructor(internal var wrapper: PackageParamW
|
|||||||
* @param loader [ClassLoader] 装载实例 - 不填使用 [appClassLoader]
|
* @param loader [ClassLoader] 装载实例 - 不填使用 [appClassLoader]
|
||||||
* @return [LazyClass.NonNull]
|
* @return [LazyClass.NonNull]
|
||||||
*/
|
*/
|
||||||
fun lazyClass(variousClass: VariousClass, initialize: Boolean = false, loader: ClassLoaderInitializer? = { appClassLoader }) =
|
fun lazyClass(variousClass: VariousClass, initialize: Boolean = false, loader: ClassLoaderInitializer? = appLoaderInit) =
|
||||||
lazyClassGlobal(variousClass, initialize, loader)
|
lazyClassGlobal(variousClass, initialize, loader)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -606,7 +612,7 @@ open class PackageParam internal constructor(internal var wrapper: PackageParamW
|
|||||||
* @param loader [ClassLoader] 装载实例 - 不填使用 [appClassLoader]
|
* @param loader [ClassLoader] 装载实例 - 不填使用 [appClassLoader]
|
||||||
* @return [LazyClass.Nullable]
|
* @return [LazyClass.Nullable]
|
||||||
*/
|
*/
|
||||||
fun lazyClassOrNull(name: String, initialize: Boolean = false, loader: ClassLoaderInitializer? = { appClassLoader }) =
|
fun lazyClassOrNull(name: String, initialize: Boolean = false, loader: ClassLoaderInitializer? = appLoaderInit) =
|
||||||
lazyClassOrNullGlobal(name, initialize, loader)
|
lazyClassOrNullGlobal(name, initialize, loader)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -617,7 +623,7 @@ open class PackageParam internal constructor(internal var wrapper: PackageParamW
|
|||||||
* @return [LazyClass.Nullable]<[T]>
|
* @return [LazyClass.Nullable]<[T]>
|
||||||
*/
|
*/
|
||||||
@JvmName("lazyClassOrNull_Generics")
|
@JvmName("lazyClassOrNull_Generics")
|
||||||
inline fun <reified T> lazyClassOrNull(name: String, initialize: Boolean = false, noinline loader: ClassLoaderInitializer? = { appClassLoader }) =
|
inline fun <reified T> lazyClassOrNull(name: String, initialize: Boolean = false, noinline loader: ClassLoaderInitializer? = appLoaderInit) =
|
||||||
lazyClassOrNullGlobal<T>(name, initialize, loader)
|
lazyClassOrNullGlobal<T>(name, initialize, loader)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -627,7 +633,7 @@ open class PackageParam internal constructor(internal var wrapper: PackageParamW
|
|||||||
* @param loader [ClassLoader] 装载实例 - 不填使用 [appClassLoader]
|
* @param loader [ClassLoader] 装载实例 - 不填使用 [appClassLoader]
|
||||||
* @return [LazyClass.Nullable]
|
* @return [LazyClass.Nullable]
|
||||||
*/
|
*/
|
||||||
fun lazyClassOrNull(variousClass: VariousClass, initialize: Boolean = false, loader: ClassLoaderInitializer? = { appClassLoader }) =
|
fun lazyClassOrNull(variousClass: VariousClass, initialize: Boolean = false, loader: ClassLoaderInitializer? = appLoaderInit) =
|
||||||
lazyClassOrNullGlobal(variousClass, initialize, loader)
|
lazyClassOrNullGlobal(variousClass, initialize, loader)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Reference in New Issue
Block a user