Modify change member call param name to "args" in ConstructorFinder, MethodFinder, ReflectionFactory

This commit is contained in:
2023-01-20 20:43:20 +08:00
parent ce35291435
commit c4acd31c8d
9 changed files with 203 additions and 75 deletions

View File

@@ -587,24 +587,24 @@ class ConstructorFinder @PublishedApi internal constructor(
/**
* 执行 [Constructor] 创建目标实例
* @param param [Constructor] 参数
* @param args [Constructor] 参数
* @return [Any] or null
*/
private fun baseCall(vararg param: Any?) = constructor?.newInstance(*param)
private fun baseCall(vararg args: Any?) = constructor?.newInstance(*args)
/**
* 执行 [Constructor] 创建目标实例 - 不指定目标实例类型
* @param param [Constructor] 参数
* @param args [Constructor] 参数
* @return [Any] or null
*/
fun call(vararg param: Any?) = baseCall(*param)
fun call(vararg args: Any?) = baseCall(*args)
/**
* 执行 [Constructor] 创建目标实例 - 指定 [T] 目标实例类型
* @param param [Constructor] 参数
* @param args [Constructor] 参数
* @return [T] or null
*/
fun <T> newInstance(vararg param: Any?) = baseCall(*param) as? T?
fun <T> newInstance(vararg args: Any?) = baseCall(*args) as? T?
override fun toString() = "[${constructor?.name ?: "<empty>"}]"
}

View File

@@ -698,104 +698,104 @@ class MethodFinder @PublishedApi internal constructor(
/**
* 执行 [Method]
* @param param 方法参数
* @param args 方法参数
* @return [Any] or null
*/
private fun baseCall(vararg param: Any?) =
private fun baseCall(vararg args: Any?) =
if (isCallOriginal && YukiHookHelper.isMemberHooked(method))
YukiHookHelper.invokeOriginalMember(method, instance, param)
else method?.invoke(instance, *param)
YukiHookHelper.invokeOriginalMember(method, instance, args)
else method?.invoke(instance, *args)
/**
* 执行 [Method] - 不指定返回值类型
* @param param 方法参数
* @param args 方法参数
* @return [Any] or null
*/
fun call(vararg param: Any?) = baseCall(*param)
fun call(vararg args: Any?) = baseCall(*args)
/**
* 执行 [Method] - 指定 [T] 返回值类型
* @param param 方法参数
* @param args 方法参数
* @return [T] or null
*/
fun <T> invoke(vararg param: Any?) = baseCall(*param) as? T?
fun <T> invoke(vararg args: Any?) = baseCall(*args) as? T?
/**
* 执行 [Method] - 指定 [Byte] 返回值类型
*
* - ❗请确认目标变量的类型 - 发生错误会返回 null
* @param param 方法参数
* @param args 方法参数
* @return [Byte] or null
*/
fun byte(vararg param: Any?) = invoke<Byte?>(*param)
fun byte(vararg args: Any?) = invoke<Byte?>(*args)
/**
* 执行 [Method] - 指定 [Int] 返回值类型
*
* - ❗请确认目标 [Method] 的返回值 - 发生错误会返回默认值
* @param param 方法参数
* @param args 方法参数
* @return [Int] 取不到返回 0
*/
fun int(vararg param: Any?) = invoke(*param) ?: 0
fun int(vararg args: Any?) = invoke(*args) ?: 0
/**
* 执行 [Method] - 指定 [Long] 返回值类型
*
* - ❗请确认目标 [Method] 的返回值 - 发生错误会返回默认值
* @param param 方法参数
* @param args 方法参数
* @return [Long] 取不到返回 0L
*/
fun long(vararg param: Any?) = invoke(*param) ?: 0L
fun long(vararg args: Any?) = invoke(*args) ?: 0L
/**
* 执行 [Method] - 指定 [Short] 返回值类型
*
* - ❗请确认目标 [Method] 的返回值 - 发生错误会返回默认值
* @param param 方法参数
* @param args 方法参数
* @return [Short] 取不到返回 0
*/
fun short(vararg param: Any?) = invoke<Short?>(*param) ?: 0
fun short(vararg args: Any?) = invoke<Short?>(*args) ?: 0
/**
* 执行 [Method] - 指定 [Double] 返回值类型
*
* - ❗请确认目标 [Method] 的返回值 - 发生错误会返回默认值
* @param param 方法参数
* @param args 方法参数
* @return [Double] 取不到返回 0.0
*/
fun double(vararg param: Any?) = invoke(*param) ?: 0.0
fun double(vararg args: Any?) = invoke(*args) ?: 0.0
/**
* 执行 [Method] - 指定 [Float] 返回值类型
*
* - ❗请确认目标 [Method] 的返回值 - 发生错误会返回默认值
* @param param 方法参数
* @param args 方法参数
* @return [Float] 取不到返回 0f
*/
fun float(vararg param: Any?) = invoke(*param) ?: 0f
fun float(vararg args: Any?) = invoke(*args) ?: 0f
/**
* 执行 [Method] - 指定 [String] 返回值类型
* @param param 方法参数
* @param args 方法参数
* @return [String] 取不到返回 ""
*/
fun string(vararg param: Any?) = invoke(*param) ?: ""
fun string(vararg args: Any?) = invoke(*args) ?: ""
/**
* 执行 [Method] - 指定 [Char] 返回值类型
* @param param 方法参数
* @param args 方法参数
* @return [Char] 取不到返回 ' '
*/
fun char(vararg param: Any?) = invoke(*param) ?: ' '
fun char(vararg args: Any?) = invoke(*args) ?: ' '
/**
* 执行 [Method] - 指定 [Boolean] 返回值类型
*
* - ❗请确认目标 [Method] 的返回值 - 发生错误会返回默认值
* @param param 方法参数
* @param args 方法参数
* @return [Boolean] 取不到返回 false
*/
fun boolean(vararg param: Any?) = invoke(*param) ?: false
fun boolean(vararg args: Any?) = invoke(*args) ?: false
/**
* 执行 [Method] - 指定 [Array] 返回值类型 - 每项类型 [T]
@@ -803,7 +803,7 @@ class MethodFinder @PublishedApi internal constructor(
* - ❗请确认目标 [Method] 的返回值 - 发生错误会返回空数组
* @return [Array] 取不到返回空数组
*/
inline fun <reified T> array(vararg param: Any?) = invoke(*param) ?: arrayOf<T>()
inline fun <reified T> array(vararg args: Any?) = invoke(*args) ?: arrayOf<T>()
/**
* 执行 [Method] - 指定 [List] 返回值类型 - 每项类型 [T]
@@ -811,7 +811,7 @@ class MethodFinder @PublishedApi internal constructor(
* - ❗请确认目标 [Method] 的返回值 - 发生错误会返回空数组
* @return [List] 取不到返回空数组
*/
inline fun <reified T> list(vararg param: Any?) = invoke(*param) ?: listOf<T>()
inline fun <reified T> list(vararg args: Any?) = invoke(*args) ?: listOf<T>()
override fun toString() = "[${method?.name ?: "<empty>"}] in [${instance?.javaClass?.name ?: "<empty>"}]"
}

View File

@@ -370,26 +370,26 @@ inline fun <reified T : Any> T.current(ignored: Boolean = false, initiate: Curre
* @return [Any] or null
*/
@Deprecated(message = "请使用新的命名方法", ReplaceWith("buildOf(*param, initiate)"))
fun Class<*>.buildOfAny(vararg param: Any?, initiate: ConstructorConditions = { emptyParam() }) = buildOf(*param, initiate)
fun Class<*>.buildOfAny(vararg args: Any?, initiate: ConstructorConditions = { emptyParam() }) = buildOf(*args, initiate)
/**
* 通过构造方法创建新实例 - 任意类型 [Any]
* @param param 方法参数
* @param args 方法参数
* @param initiate 查找方法体
* @return [Any] or null
*/
inline fun Class<*>.buildOf(vararg param: Any?, initiate: ConstructorConditions = { emptyParam() }) =
constructor(initiate).get().call(*param)
inline fun Class<*>.buildOf(vararg args: Any?, initiate: ConstructorConditions = { emptyParam() }) =
constructor(initiate).get().call(*args)
/**
* 通过构造方法创建新实例 - 指定类型 [T]
* @param param 方法参数
* @param args 方法参数
* @param initiate 查找方法体
* @return [T] or null
*/
@JvmName(name = "buildOf_Generics")
inline fun <T> Class<*>.buildOf(vararg param: Any?, initiate: ConstructorConditions = { emptyParam() }) =
constructor(initiate).get().newInstance<T>(*param)
inline fun <T> Class<*>.buildOf(vararg args: Any?, initiate: ConstructorConditions = { emptyParam() }) =
constructor(initiate).get().newInstance<T>(*args)
/**
* 遍历当前类中的所有方法