mirror of
https://github.com/HighCapable/YukiHookAPI.git
synced 2025-09-04 01:35:17 +08:00
Added instanceOrNull functions in HookParam
This commit is contained in:
@@ -94,6 +94,28 @@ val instance: Any
|
||||
|
||||
:::
|
||||
|
||||
如果你不确定当前实例的对象是否为 `null`,你可以使用 `instanceOrNull`。
|
||||
|
||||
## instanceOrNull <span class="symbol">- field</span>
|
||||
|
||||
```kotlin:no-line-numbers
|
||||
val instanceOrNull: Any?
|
||||
```
|
||||
|
||||
**Change Records**
|
||||
|
||||
`v1.1.7` `added`
|
||||
|
||||
**Function Illustrate**
|
||||
|
||||
> 获取当前 Hook 实例的对象。
|
||||
|
||||
::: danger
|
||||
|
||||
如果你当前 Hook 的对象是一个静态,那么它将不存在实例的对象。
|
||||
|
||||
:::
|
||||
|
||||
## instanceClass <span class="symbol">- field</span>
|
||||
|
||||
```kotlin:no-line-numbers
|
||||
@@ -313,6 +335,24 @@ inline fun <reified T> instance(): T
|
||||
instance<Activity>().finish()
|
||||
```
|
||||
|
||||
## instanceOrNull <span class="symbol">- method</span>
|
||||
|
||||
```kotlin:no-line-numbers
|
||||
inline fun <reified T> instanceOrNull(): T?
|
||||
```
|
||||
|
||||
**Function Illustrate**
|
||||
|
||||
`v1.1.7` `added`
|
||||
|
||||
**Function Illustrate**
|
||||
|
||||
> 获取当前 Hook 实例的对象 `T`。
|
||||
|
||||
**Function Example**
|
||||
|
||||
用法请参考 [instance](#instance-method) 方法。
|
||||
|
||||
## args <span class="symbol">- method</span>
|
||||
|
||||
```kotlin:no-line-numbers
|
||||
|
@@ -86,6 +86,28 @@ val instance: Any
|
||||
|
||||
:::
|
||||
|
||||
如果你不确定当前实例的对象是否为 `null`,你可以使用 `instanceOrNull`。
|
||||
|
||||
## instanceOrNull <span class="symbol">- field</span>
|
||||
|
||||
```kotlin:no-line-numbers
|
||||
val instanceOrNull: Any?
|
||||
```
|
||||
|
||||
**变更记录**
|
||||
|
||||
`v1.1.7` `新增`
|
||||
|
||||
**功能描述**
|
||||
|
||||
> 获取当前 Hook 实例的对象。
|
||||
|
||||
::: danger
|
||||
|
||||
如果你当前 Hook 的对象是一个静态,那么它将不存在实例的对象。
|
||||
|
||||
:::
|
||||
|
||||
## instanceClass <span class="symbol">- field</span>
|
||||
|
||||
```kotlin:no-line-numbers
|
||||
@@ -305,6 +327,24 @@ inline fun <reified T> instance(): T
|
||||
instance<Activity>().finish()
|
||||
```
|
||||
|
||||
## instanceOrNull <span class="symbol">- method</span>
|
||||
|
||||
```kotlin:no-line-numbers
|
||||
inline fun <reified T> instanceOrNull(): T?
|
||||
```
|
||||
|
||||
**变更记录**
|
||||
|
||||
`v1.1.7` `新增`
|
||||
|
||||
**功能描述**
|
||||
|
||||
> 获取当前 Hook 实例的对象 `T`。
|
||||
|
||||
**功能示例**
|
||||
|
||||
用法请参考 [instance](#instance-method) 方法。
|
||||
|
||||
## args <span class="symbol">- method</span>
|
||||
|
||||
```kotlin:no-line-numbers
|
||||
|
@@ -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 <reified T> instance() = instance as? T? ?: error("HookParam instance cannot cast to ${classOf<T>().name}")
|
||||
|
||||
/**
|
||||
* 获取当前 Hook 实例的对象 [T]
|
||||
* @return [T] or null
|
||||
*/
|
||||
inline fun <reified T> instanceOrNull() = instanceOrNull as? T?
|
||||
|
||||
/**
|
||||
* 获取当前 Hook 对象的 [method] or [constructor] 的参数数组下标实例化类
|
||||
* @return [ArgsIndexCondition]
|
||||
|
Reference in New Issue
Block a user