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 6c776d6e..d5c1691d 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
@@ -94,6 +94,28 @@ val instance: Any
:::
+如果你不确定当前实例的对象是否为 `null`,你可以使用 `instanceOrNull`。
+
+## instanceOrNull - field
+
+```kotlin:no-line-numbers
+val instanceOrNull: Any?
+```
+
+**Change Records**
+
+`v1.1.7` `added`
+
+**Function Illustrate**
+
+> 获取当前 Hook 实例的对象。
+
+::: danger
+
+如果你当前 Hook 的对象是一个静态,那么它将不存在实例的对象。
+
+:::
+
## instanceClass - field
```kotlin:no-line-numbers
@@ -313,6 +335,24 @@ inline fun instance(): T
instance().finish()
```
+## instanceOrNull - method
+
+```kotlin:no-line-numbers
+inline fun instanceOrNull(): T?
+```
+
+**Function Illustrate**
+
+`v1.1.7` `added`
+
+**Function Illustrate**
+
+> 获取当前 Hook 实例的对象 `T`。
+
+**Function Example**
+
+用法请参考 [instance](#instance-method) 方法。
+
## args - method
```kotlin:no-line-numbers
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 14e89840..3c4a57dd 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
@@ -86,6 +86,28 @@ val instance: Any
:::
+如果你不确定当前实例的对象是否为 `null`,你可以使用 `instanceOrNull`。
+
+## instanceOrNull - field
+
+```kotlin:no-line-numbers
+val instanceOrNull: Any?
+```
+
+**变更记录**
+
+`v1.1.7` `新增`
+
+**功能描述**
+
+> 获取当前 Hook 实例的对象。
+
+::: danger
+
+如果你当前 Hook 的对象是一个静态,那么它将不存在实例的对象。
+
+:::
+
## instanceClass - field
```kotlin:no-line-numbers
@@ -305,6 +327,24 @@ inline fun instance(): T
instance().finish()
```
+## instanceOrNull - method
+
+```kotlin:no-line-numbers
+inline fun instanceOrNull(): T?
+```
+
+**变更记录**
+
+`v1.1.7` `新增`
+
+**功能描述**
+
+> 获取当前 Hook 实例的对象 `T`。
+
+**功能示例**
+
+用法请参考 [instance](#instance-method) 方法。
+
## args - method
```kotlin:no-line-numbers
diff --git a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/param/HookParam.kt b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/param/HookParam.kt
index 26f6fcf0..acc3e37b 100644
--- a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/param/HookParam.kt
+++ b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/param/HookParam.kt
@@ -87,16 +87,24 @@ class HookParam internal constructor(
*/
val args get() = param?.args ?: error("Current hooked Member args is null")
- //val instanceOrNull?
+ /**
+ * 获取当前 Hook 实例的对象
+ *
+ * - ❗如果你当前 Hook 的对象是一个静态 - 那么它将不存在实例的对象
+ *
+ * - 如果你不确定当前实例的对象是否为 null - 你可以使用 [instanceOrNull]
+ * @return [Any]
+ * @throws IllegalStateException 如果对象为空
+ */
+ val instance get() = param?.instance ?: error("HookParam instance got null! Is this a static member?")
/**
* 获取当前 Hook 实例的对象
*
* - ❗如果你当前 Hook 的对象是一个静态 - 那么它将不存在实例的对象
- * @return [Any]
- * @throws IllegalStateException 如果对象为空
+ * @return [Any] or null
*/
- val instance get() = param?.instance ?: error("HookParam instance got null! Is this a static member?")
+ val instanceOrNull get() = param?.instance
/**
* 获取当前 Hook 实例的类对象
@@ -186,6 +194,12 @@ class HookParam internal constructor(
*/
inline fun instance() = instance as? T? ?: error("HookParam instance cannot cast to ${classOf().name}")
+ /**
+ * 获取当前 Hook 实例的对象 [T]
+ * @return [T] or null
+ */
+ inline fun instanceOrNull() = instanceOrNull as? T?
+
/**
* 获取当前 Hook 对象的 [method] or [constructor] 的参数数组下标实例化类
* @return [ArgsIndexCondition]