diff --git a/docs-source/src/en/api/public/com/highcapable/yukihookapi/hook/param/HookParam.md b/docs-source/src/en/api/public/com/highcapable/yukihookapi/hook/param/HookParam.md
index e9f2164a..9b6cdfee 100644
--- a/docs-source/src/en/api/public/com/highcapable/yukihookapi/hook/param/HookParam.md
+++ b/docs-source/src/en/api/public/com/highcapable/yukihookapi/hook/param/HookParam.md
@@ -13,7 +13,7 @@ You can use the **Chrome Translation Plugin** to translate entire pages for refe
# HookParam - class
```kotlin:no-line-numbers
-class HookParam internal constructor(
+class HookParam private constructor(
private val creatorInstance: YukiMemberHookCreator,
private var paramId: String,
private var param: YukiHookCallback.Param?
@@ -34,6 +34,10 @@ class HookParam internal constructor(
新增 `paramId` 参数
+`v1.2.0` `modified`
+
+不再开放构造方法
+
**Function Illustrate**
> Hook 方法、构造方法的目标对象实现类。
diff --git a/docs-source/src/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/HookParam.md b/docs-source/src/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/HookParam.md
index 70c5fee7..6d61f654 100644
--- a/docs-source/src/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/HookParam.md
+++ b/docs-source/src/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/HookParam.md
@@ -5,7 +5,7 @@ pageClass: code-page
# HookParam - class
```kotlin:no-line-numbers
-class HookParam internal constructor(
+class HookParam private constructor(
private val creatorInstance: YukiMemberHookCreator,
private var paramId: String,
private var param: YukiHookCallback.Param?
@@ -26,6 +26,10 @@ class HookParam internal constructor(
新增 `paramId` 参数
+`v1.2.0` `修改`
+
+不再开放构造方法
+
**功能描述**
> Hook 方法、构造方法的目标对象实现类。
diff --git a/yukihookapi-core/src/main/java/com/highcapable/yukihookapi/hook/core/YukiMemberHookCreator.kt b/yukihookapi-core/src/main/java/com/highcapable/yukihookapi/hook/core/YukiMemberHookCreator.kt
index 3660c23e..80d83d25 100644
--- a/yukihookapi-core/src/main/java/com/highcapable/yukihookapi/hook/core/YukiMemberHookCreator.kt
+++ b/yukihookapi-core/src/main/java/com/highcapable/yukihookapi/hook/core/YukiMemberHookCreator.kt
@@ -585,13 +585,10 @@ class YukiMemberHookCreator internal constructor(private val packageParam: Packa
* @return [YukiHookResult]
*/
private fun Member.hook(): YukiHookResult {
- /** 定义替换 Hook 的 [HookParam] */
- val replaceHookParam = HookParam(creatorInstance = this@YukiMemberHookCreator)
-
/** 定义替换 Hook 回调方法体 */
val replaceMent = object : YukiMemberReplacement(priority.toPriority()) {
override fun replaceHookedMember(param: Param) =
- replaceHookParam.assign(replaceHookId, param).let { assign ->
+ HookParam.create(this@YukiMemberHookCreator, replaceHookId, param).let { assign ->
runCatching {
replaceHookCallback?.invoke(assign).also {
checkingReturnType((param.member as? Method?)?.returnType, it?.javaClass)
@@ -608,16 +605,10 @@ class YukiMemberHookCreator internal constructor(private val packageParam: Packa
}
}
- /** 定义前 Hook 的 [HookParam] */
- val beforeHookParam = HookParam(creatorInstance = this@YukiMemberHookCreator)
-
- /** 定义后 Hook 的 [HookParam] */
- val afterHookParam = HookParam(creatorInstance = this@YukiMemberHookCreator)
-
/** 定义前后 Hook 回调方法体 */
val beforeAfterHook = object : YukiMemberHook(priority.toPriority()) {
override fun beforeHookedMember(param: Param) {
- beforeHookParam.assign(beforeHookId, param).also { assign ->
+ HookParam.create(this@YukiMemberHookCreator, beforeHookId, param).also { assign ->
runCatching {
beforeHookCallback?.invoke(assign)
checkingReturnType((param.member as? Method?)?.returnType, param.result?.javaClass)
@@ -633,7 +624,7 @@ class YukiMemberHookCreator internal constructor(private val packageParam: Packa
}
override fun afterHookedMember(param: Param) {
- afterHookParam.assign(afterHookId, param).also { assign ->
+ HookParam.create(this@YukiMemberHookCreator, afterHookId, param).also { assign ->
runCatching {
afterHookCallback?.invoke(assign)
if (afterHookCallback != null) YLog.innerD("After Hook Member [${this@hook}] done [$tag]")
diff --git a/yukihookapi-core/src/main/java/com/highcapable/yukihookapi/hook/param/HookParam.kt b/yukihookapi-core/src/main/java/com/highcapable/yukihookapi/hook/param/HookParam.kt
index c071fb2e..e47d22cd 100644
--- a/yukihookapi-core/src/main/java/com/highcapable/yukihookapi/hook/param/HookParam.kt
+++ b/yukihookapi-core/src/main/java/com/highcapable/yukihookapi/hook/param/HookParam.kt
@@ -46,7 +46,7 @@ import java.lang.reflect.Method
* @param paramId 当前回调方法体 ID
* @param param Hook 结果回调接口
*/
-class HookParam internal constructor(
+class HookParam private constructor(
private val creatorInstance: YukiMemberHookCreator,
private var paramId: String = "",
private var param: YukiHookCallback.Param? = null
@@ -60,24 +60,22 @@ class HookParam internal constructor(
/** [HookParam] 是否已经执行首次回调事件 */
internal var isCallbackCalled = false
+ /**
+ * 创建新的 [HookParam]
+ * @param creatorInstance [YukiMemberHookCreator] 的实例对象
+ * @param paramId 当前回调方法体 ID
+ * @param param Hook 结果回调接口
+ * @return [HookParam]
+ */
+ internal fun create(creatorInstance: YukiMemberHookCreator, paramId: String, param: YukiHookCallback.Param) =
+ HookParam(creatorInstance, paramId, param)
+
/** 设置 [HookParam] 执行首次回调事件 */
internal fun invoke() {
isCallbackCalled = true
}
}
- /**
- * 在回调中设置 [HookParam] 使用的 [YukiHookCallback.Param]
- * @param paramId 当前回调方法体 ID
- * @param param Hook 结果回调接口
- * @return [HookParam]
- */
- internal fun assign(paramId: String, param: YukiHookCallback.Param): HookParam {
- this.paramId = paramId
- this.param = param
- return this
- }
-
/**
* 获取当前 Hook 对象 [method] or [constructor] 的参数对象数组
*