mirror of
https://github.com/HighCapable/YukiHookAPI.git
synced 2025-09-04 01:35:17 +08:00
89 lines
57 KiB
JavaScript
89 lines
57 KiB
JavaScript
import{_ as s,o as a,c as o,a as e}from"./app-BpUB8-Q8.js";const n={},l=e(`<div class="custom-container warning"><p class="custom-container-title">注意</p><p>由于维护成本,<code>YukiHookAPI</code> 从 <code>1.3.0</code> 版本开始将不再会对此文档进行更新且在 <code>2.0.0</code> 版本切换为 Dokka 插件自动生成的 API 文档。</p></div><h1 id="hookparam-class" tabindex="-1"><a class="header-anchor" href="#hookparam-class" aria-hidden="true">#</a> HookParam <span class="symbol">- class</span></h1><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">class</span><span style="color:#ADBAC7;"> </span><span style="color:#F69D50;">HookParam</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">private</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">constructor</span><span style="color:#ADBAC7;">(</span></span>
|
||
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">private</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">val</span><span style="color:#ADBAC7;"> creatorInstance: </span><span style="color:#F69D50;">YukiMemberHookCreator</span><span style="color:#ADBAC7;">,</span></span>
|
||
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">private</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">var</span><span style="color:#ADBAC7;"> paramId: </span><span style="color:#F69D50;">String</span><span style="color:#ADBAC7;">,</span></span>
|
||
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">private</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">var</span><span style="color:#ADBAC7;"> param: </span><span style="color:#F69D50;">YukiHookCallback</span><span style="color:#ADBAC7;">.Param?</span></span>
|
||
<span class="line"><span style="color:#ADBAC7;">)</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0</code> <code>添加</code></p><p><code>v1.1.0</code> <code>修改</code></p><p>移动 <code>HookParamWrapper</code> 到 <code>YukiHookCallback.Param</code></p><p>修正拼写错误的 <strong>creater</strong> 命名到 <strong>creator</strong></p><p><code>v1.1.5</code> <code>修改</code></p><p>新增 <code>paramId</code> 参数</p><p><code>v1.2.0</code> <code>修改</code></p><p>不再开放构造方法</p><p><strong>功能描述</strong></p><blockquote><p>Hook 方法、构造方法的目标对象实现类。</p></blockquote><h2 id="args-field" tabindex="-1"><a class="header-anchor" href="#args-field" aria-hidden="true">#</a> args <span class="symbol">- field</span></h2><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">val</span><span style="color:#ADBAC7;"> args: </span><span style="color:#F69D50;">Array</span><span style="color:#ADBAC7;"><</span><span style="color:#F69D50;">Any</span><span style="color:#ADBAC7;">?></span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p>在 <code>v1.0</code> 添加</p><p><strong>功能描述</strong></p><blockquote><p>获取当前 Hook 对象 <code>member</code> 或 <code>constructor</code> 的参数对象数组。</p></blockquote><p>这里的数组每项类型默认为 <code>Any</code>,你可以使用 <code>args</code> 方法来实现 <code>ArgsModifyer.cast</code> 功能。</p><h2 class="deprecated">firstArgs - field</h2><p><strong>变更记录</strong></p><p><code>v1.0</code> <code>添加</code></p><p><code>v1.0.75</code> <code>移除</code></p><p>请使用 <code>args(index = 0)</code> 或 <code>args().first()</code></p><h2 class="deprecated">lastArgs - field</h2><p><strong>变更记录</strong></p><p><code>v1.0</code> <code>添加</code></p><p><code>v1.0.75</code> <code>移除</code></p><p>请使用 <code>args().last()</code></p><h2 id="instance-field" tabindex="-1"><a class="header-anchor" href="#instance-field" aria-hidden="true">#</a> instance <span class="symbol">- field</span></h2><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">val</span><span style="color:#ADBAC7;"> instance: </span><span style="color:#F69D50;">Any</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0</code> <code>添加</code></p><p><strong>功能描述</strong></p><blockquote><p>获取当前 Hook 实例的对象。</p></blockquote><div class="custom-container danger"><p class="custom-container-title">特别注意</p><p>如果你当前 Hook 的对象是一个静态,那么它将不存在实例的对象。</p></div><p>如果你不确定当前实例的对象是否为 <code>null</code>,你可以使用 <code>instanceOrNull</code>。</p><h2 id="instanceornull-field" tabindex="-1"><a class="header-anchor" href="#instanceornull-field" aria-hidden="true">#</a> instanceOrNull <span class="symbol">- field</span></h2><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">val</span><span style="color:#ADBAC7;"> instanceOrNull: </span><span style="color:#F69D50;">Any</span><span style="color:#ADBAC7;">?</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.1.8</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>获取当前 Hook 实例的对象。</p></blockquote><div class="custom-container danger"><p class="custom-container-title">特别注意</p><p>如果你当前 Hook 的对象是一个静态,那么它将不存在实例的对象。</p></div><h2 id="instanceclass-field" tabindex="-1"><a class="header-anchor" href="#instanceclass-field" aria-hidden="true">#</a> instanceClass <span class="symbol">- field</span></h2><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">val</span><span style="color:#ADBAC7;"> instanceClass: </span><span style="color:#F69D50;">Class</span><span style="color:#ADBAC7;"><*>?</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0</code> <code>添加</code></p><p><code>v1.2.0</code> <code>修改</code></p><p>加入可空类型 (空安全)</p><p><strong>功能描述</strong></p><blockquote><p>获取当前 Hook 实例的类对象。</p></blockquote><div class="custom-container danger"><p class="custom-container-title">特别注意</p><p>如果你当前 Hook 的对象是一个静态,那么它将不存在实例的对象。</p></div><h2 id="member-field" tabindex="-1"><a class="header-anchor" href="#member-field" aria-hidden="true">#</a> member <span class="symbol">- field</span></h2><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">val</span><span style="color:#ADBAC7;"> member: </span><span style="color:#F69D50;">Member</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.1.0</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>获取当前 Hook 对象的 <code>Member</code>。</p></blockquote><p>在不确定 <code>Member</code> 类型为 <code>Method</code> 或 <code>Constructor</code> 时可以使用此方法。</p><h2 id="method-field" tabindex="-1"><a class="header-anchor" href="#method-field" aria-hidden="true">#</a> method <span class="symbol">- field</span></h2><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">val</span><span style="color:#ADBAC7;"> method: </span><span style="color:#F69D50;">Method</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0</code> <code>添加</code></p><p><strong>功能描述</strong></p><blockquote><p>获取当前 Hook 对象的方法。</p></blockquote><h2 id="constructor-field" tabindex="-1"><a class="header-anchor" href="#constructor-field" aria-hidden="true">#</a> constructor <span class="symbol">- field</span></h2><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">val</span><span style="color:#ADBAC7;"> constructor: </span><span style="color:#F69D50;">Constructor</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0</code> <code>添加</code></p><p><strong>功能描述</strong></p><blockquote><p>获取当前 Hook 对象的构造方法。</p></blockquote><h2 id="result-field" tabindex="-1"><a class="header-anchor" href="#result-field" aria-hidden="true">#</a> result <span class="symbol">- field</span></h2><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">var</span><span style="color:#ADBAC7;"> result: </span><span style="color:#F69D50;">Any</span><span style="color:#ADBAC7;">?</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0</code> <code>添加</code></p><p><strong>功能描述</strong></p><blockquote><p>获取、设置当前 Hook 对象的 <code>method</code> 或 <code>constructor</code> 的返回值。</p></blockquote><h2 id="dataextra-field" tabindex="-1"><a class="header-anchor" href="#dataextra-field" aria-hidden="true">#</a> dataExtra <span class="symbol">- field</span></h2><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">val</span><span style="color:#ADBAC7;"> dataExtra: </span><span style="color:#F69D50;">Bundle</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.1.5</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>获取当前回调方法体范围内的数据存储实例。</p></blockquote><h2 id="hasthrowable-field" tabindex="-1"><a class="header-anchor" href="#hasthrowable-field" aria-hidden="true">#</a> hasThrowable <span class="symbol">- field</span></h2><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">val</span><span style="color:#ADBAC7;"> hasThrowable: </span><span style="color:#F69D50;">Boolean</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.1.0</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>判断是否存在设置过的方法调用抛出异常。</p></blockquote><h2 id="throwable-field" tabindex="-1"><a class="header-anchor" href="#throwable-field" aria-hidden="true">#</a> throwable <span class="symbol">- field</span></h2><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">val</span><span style="color:#ADBAC7;"> throwable: </span><span style="color:#F69D50;">Throwable</span><span style="color:#ADBAC7;">?</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.1.0</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>获取设置的方法调用抛出异常。</p></blockquote><h2 id="throwable-throwtoapp-i-ext-method" tabindex="-1"><a class="header-anchor" href="#throwable-throwtoapp-i-ext-method" aria-hidden="true">#</a> Throwable.throwToApp <span class="symbol">- i-ext-method</span></h2><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#F69D50;">Throwable</span><span style="color:#ADBAC7;">.</span><span style="color:#DCBDFB;">throwToApp</span><span style="color:#ADBAC7;">()</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.1.0</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>向 Hook APP 抛出异常。</p></blockquote><p>使用 <code>hasThrowable</code> 判断当前是否存在被抛出的异常。</p><p>使用 <code>throwable</code> 获取当前设置的方法调用抛出异常。</p><p>仅会在回调方法的 <code>MemberHookCreator.before</code> 或 <code>MemberHookCreator.after</code> 中生效。</p><div class="custom-container danger"><p class="custom-container-title">特别注意</p><p>设置后会同时执行 <strong>resultNull</strong> 方法并将异常抛出给当前 Hook APP。</p></div><p><strong>功能示例</strong></p><p>Hook 过程中的异常仅会作用于 (Xposed) 宿主环境,目标 Hook APP 不会受到影响。</p><p>若想将异常抛给 Hook APP,可以直接使用如下方法。</p><blockquote><p>示例如下</p></blockquote><div class="language-kotlin line-numbers-mode" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#DCBDFB;">hook</span><span style="color:#ADBAC7;"> {</span></span>
|
||
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">before</span><span style="color:#ADBAC7;"> {</span></span>
|
||
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">RuntimeException</span><span style="color:#ADBAC7;">(</span><span style="color:#96D0FF;">"Test Exception"</span><span style="color:#ADBAC7;">).</span><span style="color:#DCBDFB;">throwToApp</span><span style="color:#ADBAC7;">()</span></span>
|
||
<span class="line"><span style="color:#ADBAC7;"> }</span></span>
|
||
<span class="line"><span style="color:#ADBAC7;">}</span></span>
|
||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><div class="custom-container danger"><p class="custom-container-title">特别注意</p><p>向 Hook APP 抛出异常<u><strong>会对其暴露被 Hook 的事实</strong></u>,是不安全的,容易被检测,请按实际场景合理使用。</p></div><h2 id="result-method" tabindex="-1"><a class="header-anchor" href="#result-method" aria-hidden="true">#</a> result <span class="symbol">- method</span></h2><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">inline</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> <</span><span style="color:#F69D50;">reified</span><span style="color:#ADBAC7;"> </span><span style="color:#F69D50;">T</span><span style="color:#ADBAC7;">> </span><span style="color:#DCBDFB;">result</span><span style="color:#ADBAC7;">(): </span><span style="color:#F69D50;">T</span><span style="color:#ADBAC7;">?</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.75</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>获取当前 Hook 对象的 <code>method</code> 或 <code>constructor</code> 的返回值 <code>T</code>。</p></blockquote><h2 class="deprecated">firstArg - method</h2><p><strong>变更记录</strong></p><p><code>v1.0.66</code> <code>新增</code></p><p><code>v1.0.75</code> <code>移除</code></p><h2 class="deprecated">lastArgs - method</h2><p><strong>变更记录</strong></p><p><code>v1.0.66</code> <code>新增</code></p><p><code>v1.0.75</code> <code>移除</code></p><h2 id="instance-method" tabindex="-1"><a class="header-anchor" href="#instance-method" aria-hidden="true">#</a> instance <span class="symbol">- method</span></h2><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">inline</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> <</span><span style="color:#F69D50;">reified</span><span style="color:#ADBAC7;"> </span><span style="color:#F69D50;">T</span><span style="color:#ADBAC7;">> </span><span style="color:#DCBDFB;">instance</span><span style="color:#ADBAC7;">(): </span><span style="color:#F69D50;">T</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0</code> <code>添加</code></p><p><strong>功能描述</strong></p><blockquote><p>获取当前 Hook 实例的对象 <code>T</code>。</p></blockquote><p><strong>功能示例</strong></p><p>你可以通过 <code>instance</code> 方法轻松使用泛型 <code>cast</code> 为目标对象的类型。</p><blockquote><p>示例如下</p></blockquote><div class="language-kotlin line-numbers-mode" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#DCBDFB;">instance</span><span style="color:#ADBAC7;"><</span><span style="color:#F69D50;">Activity</span><span style="color:#ADBAC7;">>().</span><span style="color:#DCBDFB;">finish</span><span style="color:#ADBAC7;">()</span></span>
|
||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><h2 id="instanceornull-method" tabindex="-1"><a class="header-anchor" href="#instanceornull-method" aria-hidden="true">#</a> instanceOrNull <span class="symbol">- method</span></h2><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">inline</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> <</span><span style="color:#F69D50;">reified</span><span style="color:#ADBAC7;"> </span><span style="color:#F69D50;">T</span><span style="color:#ADBAC7;">> </span><span style="color:#DCBDFB;">instanceOrNull</span><span style="color:#ADBAC7;">(): </span><span style="color:#F69D50;">T</span><span style="color:#ADBAC7;">?</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.1.8</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>获取当前 Hook 实例的对象 <code>T</code>。</p></blockquote><p><strong>功能示例</strong></p><p>用法请参考 <a href="#instance-method">instance</a> 方法。</p><h2 id="args-method" tabindex="-1"><a class="header-anchor" href="#args-method" aria-hidden="true">#</a> args <span class="symbol">- method</span></h2><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">args</span><span style="color:#ADBAC7;">(): </span><span style="color:#F69D50;">ArgsIndexCondition</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.75</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>获取当前 Hook 对象的 <code>method</code> 或 <code>constructor</code> 的参数数组下标实例化类。</p></blockquote><h2 id="args-method-1" tabindex="-1"><a class="header-anchor" href="#args-method-1" aria-hidden="true">#</a> args <span class="symbol">- method</span></h2><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">args</span><span style="color:#ADBAC7;">(index: </span><span style="color:#F69D50;">Int</span><span style="color:#ADBAC7;">): </span><span style="color:#F69D50;">ArgsModifyer</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0</code> <code>添加</code></p><p><code>v1.0.75</code> <code>修改</code></p><p>默认值 <code>index = 0</code> 移动到新的使用方法 <code>args().first()</code></p><p><strong>功能描述</strong></p><blockquote><p>获取当前 Hook 对象的 <code>method</code> 或 <code>constructor</code> 的参数实例化对象类。</p></blockquote><p><strong>功能示例</strong></p><p>你可以通过 <code>args</code> 方法修改当前 Hook 实例的方法、构造方法的参数内容。</p><p>你可以直接使用 <code>set</code> 方法设置 <code>param</code> 为你的目标实例,接受 <code>Any</code> 类型。</p><div class="custom-container danger"><p class="custom-container-title">特别注意</p><p>请确保 <strong>param</strong> 类型为你的目标实例类型。</p></div><blockquote><p>示例如下</p></blockquote><div class="language-kotlin line-numbers-mode" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#DCBDFB;">args</span><span style="color:#ADBAC7;">(index </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#6CB6FF;">0</span><span style="color:#ADBAC7;">).</span><span style="color:#DCBDFB;">set</span><span style="color:#ADBAC7;">(</span><span style="color:#96D0FF;">"modify the value"</span><span style="color:#ADBAC7;">)</span></span>
|
||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>你可以这样直接设置第一位 <code>param</code> 的值。</p><blockquote><p>示例如下</p></blockquote><div class="language-kotlin line-numbers-mode" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#DCBDFB;">args</span><span style="color:#ADBAC7;">().</span><span style="color:#DCBDFB;">first</span><span style="color:#ADBAC7;">().</span><span style="color:#DCBDFB;">set</span><span style="color:#ADBAC7;">(</span><span style="color:#96D0FF;">"modify the value"</span><span style="color:#ADBAC7;">)</span></span>
|
||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>你还可以直接设置最后一位 <code>param</code> 的值。</p><blockquote><p>示例如下</p></blockquote><div class="language-kotlin line-numbers-mode" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#DCBDFB;">args</span><span style="color:#ADBAC7;">().</span><span style="color:#DCBDFB;">last</span><span style="color:#ADBAC7;">().</span><span style="color:#DCBDFB;">set</span><span style="color:#ADBAC7;">(</span><span style="color:#96D0FF;">"modify the value"</span><span style="color:#ADBAC7;">)</span></span>
|
||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>你还可以使用 <code>setNull</code> 方法设置 <code>param</code> 为空。</p><blockquote><p>示例如下</p></blockquote><div class="language-kotlin line-numbers-mode" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#DCBDFB;">args</span><span style="color:#ADBAC7;">(index </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#6CB6FF;">1</span><span style="color:#ADBAC7;">).</span><span style="color:#DCBDFB;">setNull</span><span style="color:#ADBAC7;">()</span></span>
|
||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>你还可以使用 <code>setTrue</code> 方法设置 <code>param</code> 为 <code>true</code>。</p><div class="custom-container danger"><p class="custom-container-title">特别注意</p><p>请确保 <strong>param</strong> 类型为 <strong>Boolean</strong>。</p></div><blockquote><p>示例如下</p></blockquote><div class="language-kotlin line-numbers-mode" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#DCBDFB;">args</span><span style="color:#ADBAC7;">(index </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#6CB6FF;">1</span><span style="color:#ADBAC7;">).</span><span style="color:#DCBDFB;">setTrue</span><span style="color:#ADBAC7;">()</span></span>
|
||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>你还可以使用 <code>setFalse</code> 方法设置 <code>param</code> 为 <code>false</code>。</p><div class="custom-container danger"><p class="custom-container-title">特别注意</p><p>请确保 <strong>param</strong> 类型为 <strong>Boolean</strong>。</p></div><blockquote><p>示例如下</p></blockquote><div class="language-kotlin line-numbers-mode" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#DCBDFB;">args</span><span style="color:#ADBAC7;">(index </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#6CB6FF;">1</span><span style="color:#ADBAC7;">).</span><span style="color:#DCBDFB;">setFalse</span><span style="color:#ADBAC7;">()</span></span>
|
||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><h2 id="calloriginal-method" tabindex="-1"><a class="header-anchor" href="#calloriginal-method" aria-hidden="true">#</a> callOriginal <span class="symbol">- method</span></h2><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">callOriginal</span><span style="color:#ADBAC7;">(): </span><span style="color:#F69D50;">Any</span><span style="color:#ADBAC7;">?</span></span>
|
||
<span class="line"></span></code></pre></div><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> <</span><span style="color:#F69D50;">T</span><span style="color:#ADBAC7;">> </span><span style="color:#DCBDFB;">callOriginal</span><span style="color:#ADBAC7;">(): </span><span style="color:#F69D50;">T</span><span style="color:#ADBAC7;">?</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.1.0</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>执行原始 <code>Member</code>。</p></blockquote><p>调用自身未进行 Hook 的原始 <code>Member</code> 并调用原始参数执行。</p><p><strong>功能实例</strong></p><p>此方法可以 <code>invoke</code> 原始未经 Hook 的 <code>Member</code> 对象,取决于原始 <code>Member</code> 的参数。</p><p>调用自身原始的方法不会再经过当前 <code>before</code>、<code>after</code> 以及 <code>replaceUnit</code>、<code>replaceAny</code>。</p><p>比如我们 Hook 的这个方法被这样调用 <code>test("test value")</code>,使用此方法会调用其中的 <code>"test value"</code> 作为参数。</p><blockquote><p>示例如下</p></blockquote><div class="language-kotlin line-numbers-mode" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#DCBDFB;">method</span><span style="color:#ADBAC7;"> {</span></span>
|
||
<span class="line"><span style="color:#ADBAC7;"> name </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#96D0FF;">"test"</span></span>
|
||
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">param</span><span style="color:#ADBAC7;">(StringClass)</span></span>
|
||
<span class="line"><span style="color:#ADBAC7;"> returnType </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> StringClass</span></span>
|
||
<span class="line"><span style="color:#ADBAC7;">}.</span><span style="color:#DCBDFB;">hook</span><span style="color:#ADBAC7;"> {</span></span>
|
||
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">after</span><span style="color:#ADBAC7;"> {</span></span>
|
||
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// <方案1> 不使用泛型,不获取方法执行结果,调用将使用原方法传入的 args 自动传参</span></span>
|
||
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">callOriginal</span><span style="color:#ADBAC7;">()</span></span>
|
||
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// <方案2> 使用泛型,已知方法执行结果参数类型进行 cast</span></span>
|
||
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// 假设返回值为 String,失败会返回 null,调用将使用原方法传入的 args 自动传参</span></span>
|
||
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">val</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">value</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">callOriginal</span><span style="color:#ADBAC7;"><</span><span style="color:#F69D50;">String</span><span style="color:#ADBAC7;">>()</span></span>
|
||
<span class="line"><span style="color:#ADBAC7;"> }</span></span>
|
||
<span class="line"><span style="color:#ADBAC7;">}</span></span>
|
||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h2 id="invokeoriginal-method" tabindex="-1"><a class="header-anchor" href="#invokeoriginal-method" aria-hidden="true">#</a> invokeOriginal <span class="symbol">- method</span></h2><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">invokeOriginal</span><span style="color:#ADBAC7;">(</span><span style="color:#F47067;">vararg</span><span style="color:#ADBAC7;"> args: </span><span style="color:#F69D50;">Any</span><span style="color:#ADBAC7;">?): </span><span style="color:#F69D50;">Any</span><span style="color:#ADBAC7;">?</span></span>
|
||
<span class="line"></span></code></pre></div><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> <</span><span style="color:#F69D50;">T</span><span style="color:#ADBAC7;">> </span><span style="color:#DCBDFB;">invokeOriginal</span><span style="color:#ADBAC7;">(</span><span style="color:#F47067;">vararg</span><span style="color:#ADBAC7;"> args: </span><span style="color:#F69D50;">Any</span><span style="color:#ADBAC7;">?): </span><span style="color:#F69D50;">T</span><span style="color:#ADBAC7;">?</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0</code> <code>添加</code></p><p><code>v1.1.0</code> <code>修改</code></p><p>不再需要使用 <code>member.invokeOriginal</code> 进行调用</p><p><strong>功能描述</strong></p><blockquote><p>执行原始 <code>Member</code>。</p></blockquote><p>调用自身未进行 Hook 的原始 <code>Member</code> 并自定义 <code>args</code> 执行。</p><p><strong>功能实例</strong></p><p>此方法可以 <code>invoke</code> 原始未经 Hook 的 <code>Member</code> 对象,可自定义需要调用的参数内容。</p><p>调用自身原始的方法不会再经过当前 <code>before</code>、<code>after</code> 以及 <code>replaceUnit</code>、<code>replaceAny</code>。</p><p>比如我们 Hook 的这个方法被这样调用 <code>test("test value")</code>,使用此方法可自定义其中的 <code>args</code> 作为参数。</p><blockquote><p>示例如下</p></blockquote><div class="language-kotlin line-numbers-mode" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#DCBDFB;">method</span><span style="color:#ADBAC7;"> {</span></span>
|
||
<span class="line"><span style="color:#ADBAC7;"> name </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#96D0FF;">"test"</span></span>
|
||
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">param</span><span style="color:#ADBAC7;">(StringClass)</span></span>
|
||
<span class="line"><span style="color:#ADBAC7;"> returnType </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> StringClass</span></span>
|
||
<span class="line"><span style="color:#ADBAC7;">}.</span><span style="color:#DCBDFB;">hook</span><span style="color:#ADBAC7;"> {</span></span>
|
||
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">after</span><span style="color:#ADBAC7;"> {</span></span>
|
||
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// <方案1> 不使用泛型,不获取方法执行结果</span></span>
|
||
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">invokeOriginal</span><span style="color:#ADBAC7;">(</span><span style="color:#96D0FF;">"test value"</span><span style="color:#ADBAC7;">)</span></span>
|
||
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#768390;">// <方案2> 使用泛型,已知方法执行结果参数类型进行 cast,假设返回值为 String,失败会返回 null</span></span>
|
||
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">val</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">value</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">=</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">invokeOriginal</span><span style="color:#ADBAC7;"><</span><span style="color:#F69D50;">String</span><span style="color:#ADBAC7;">>(</span><span style="color:#96D0FF;">"test value"</span><span style="color:#ADBAC7;">)</span></span>
|
||
<span class="line"><span style="color:#ADBAC7;"> }</span></span>
|
||
<span class="line"><span style="color:#ADBAC7;">}</span></span>
|
||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h2 id="resulttrue-method" tabindex="-1"><a class="header-anchor" href="#resulttrue-method" aria-hidden="true">#</a> resultTrue <span class="symbol">- method</span></h2><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">resultTrue</span><span style="color:#ADBAC7;">()</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0</code> <code>添加</code></p><p><strong>功能描述</strong></p><blockquote><p>设置当前 Hook 对象方法的 <code>result</code> 返回值为 <code>true</code>。</p></blockquote><div class="custom-container danger"><p class="custom-container-title">特别注意</p><p>请确保 <strong>result</strong> 类型为 <strong>Boolean</strong>。</p></div><h2 id="resultfalse-method" tabindex="-1"><a class="header-anchor" href="#resultfalse-method" aria-hidden="true">#</a> resultFalse <span class="symbol">- method</span></h2><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">resultFalse</span><span style="color:#ADBAC7;">()</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0</code> <code>添加</code></p><p><strong>功能描述</strong></p><blockquote><p>设置当前 Hook 对象方法的 <code>result</code> 返回值为 <code>false</code>。</p></blockquote><div class="custom-container danger"><p class="custom-container-title">特别注意</p><p>请确保 <strong>result</strong> 类型为 <strong>Boolean</strong>。</p></div><h2 id="resultnull-method" tabindex="-1"><a class="header-anchor" href="#resultnull-method" aria-hidden="true">#</a> resultNull <span class="symbol">- method</span></h2><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">resultNull</span><span style="color:#ADBAC7;">()</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0</code> <code>添加</code></p><p><strong>功能描述</strong></p><div class="custom-container warning"><p class="custom-container-title">注意</p><p>此方法将强制设置 Hook 对象方法的 <strong>result</strong> 为 <strong>null</strong>。</p></div><h2 id="argsindexcondition-class" tabindex="-1"><a class="header-anchor" href="#argsindexcondition-class" aria-hidden="true">#</a> ArgsIndexCondition <span class="symbol">- class</span></h2><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">inner</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">class</span><span style="color:#ADBAC7;"> </span><span style="color:#F69D50;">ArgsIndexCondition</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">internal</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">constructor</span><span style="color:#ADBAC7;">()</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.75</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>对方法参数的数组下标进行实例化类。</p></blockquote><h3 id="first-method" tabindex="-1"><a class="header-anchor" href="#first-method" aria-hidden="true">#</a> first <span class="symbol">- method</span></h3><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">first</span><span style="color:#ADBAC7;">(): </span><span style="color:#F69D50;">ArgsModifyer</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.75</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>获取当前 Hook 对象的 <code>method</code> 或 <code>constructor</code> 的参数数组第一位。</p></blockquote><h3 id="last-method" tabindex="-1"><a class="header-anchor" href="#last-method" aria-hidden="true">#</a> last <span class="symbol">- method</span></h3><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">last</span><span style="color:#ADBAC7;">(): </span><span style="color:#F69D50;">ArgsModifyer</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.75</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>获取当前 Hook 对象的 <code>method</code> 或 <code>constructor</code> 的参数数组最后一位。</p></blockquote><h2 id="argsmodifyer-class" tabindex="-1"><a class="header-anchor" href="#argsmodifyer-class" aria-hidden="true">#</a> ArgsModifyer <span class="symbol">- class</span></h2><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">inner</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">class</span><span style="color:#ADBAC7;"> </span><span style="color:#F69D50;">ArgsModifyer</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">internal</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">constructor</span><span style="color:#ADBAC7;">(</span><span style="color:#F47067;">private</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">val</span><span style="color:#ADBAC7;"> index: </span><span style="color:#F69D50;">Int</span><span style="color:#ADBAC7;">)</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0</code> <code>添加</code></p><p><strong>功能描述</strong></p><blockquote><p>对方法参数的修改进行实例化类。</p></blockquote><h3 id="cast-method" tabindex="-1"><a class="header-anchor" href="#cast-method" aria-hidden="true">#</a> cast <span class="symbol">- method</span></h3><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> <</span><span style="color:#F69D50;">T</span><span style="color:#ADBAC7;">> </span><span style="color:#DCBDFB;">cast</span><span style="color:#ADBAC7;">(): </span><span style="color:#F69D50;">T</span><span style="color:#ADBAC7;">?</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.66</code> <code>新增</code></p><p><code>v1.0.68</code> <code>修改</code></p><p>修改 <s><code>of</code></s> 为 <code>cast</code></p><p><strong>功能描述</strong></p><blockquote><p>得到方法参数的实例对象 <code>T</code>。</p></blockquote><h3 id="byte-method" tabindex="-1"><a class="header-anchor" href="#byte-method" aria-hidden="true">#</a> byte <span class="symbol">- method</span></h3><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">byte</span><span style="color:#ADBAC7;">(): </span><span style="color:#F69D50;">Byte</span><span style="color:#ADBAC7;">?</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.68</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>得到方法参数的实例对象 Byte。</p></blockquote><h3 id="int-method" tabindex="-1"><a class="header-anchor" href="#int-method" aria-hidden="true">#</a> int <span class="symbol">- method</span></h3><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">int</span><span style="color:#ADBAC7;">(): </span><span style="color:#F69D50;">Int</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.66</code> <code>新增</code></p><p><code>v1.0.68</code> <code>修改</code></p><p>修改 <s><code>ofInt</code></s> 为 <code>int</code></p><p><strong>功能描述</strong></p><blockquote><p>得到方法参数的实例对象 Int。</p></blockquote><h3 id="long-method" tabindex="-1"><a class="header-anchor" href="#long-method" aria-hidden="true">#</a> long <span class="symbol">- method</span></h3><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">long</span><span style="color:#ADBAC7;">(): </span><span style="color:#F69D50;">Long</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.66</code> <code>新增</code></p><p><code>v1.0.68</code> <code>修改</code></p><p>修改 <s><code>ofLong</code></s> 为 <code>long</code></p><p><strong>功能描述</strong></p><blockquote><p>得到方法参数的实例对象 Long。</p></blockquote><h3 id="short-method" tabindex="-1"><a class="header-anchor" href="#short-method" aria-hidden="true">#</a> short <span class="symbol">- method</span></h3><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">short</span><span style="color:#ADBAC7;">(): </span><span style="color:#F69D50;">Short</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.66</code> <code>新增</code></p><p><code>v1.0.68</code> <code>修改</code></p><p>修改 <s><code>ofShort</code></s> 为 <code>short</code></p><p><strong>功能描述</strong></p><blockquote><p>得到方法参数的实例对象 Short。</p></blockquote><h3 id="double-method" tabindex="-1"><a class="header-anchor" href="#double-method" aria-hidden="true">#</a> double <span class="symbol">- method</span></h3><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">double</span><span style="color:#ADBAC7;">(): </span><span style="color:#F69D50;">Double</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.66</code> <code>新增</code></p><p><code>v1.0.68</code> <code>修改</code></p><p>修改 <s><code>ofDouble</code></s> 为 <code>double</code></p><p><strong>功能描述</strong></p><blockquote><p>得到方法参数的实例对象 Double。</p></blockquote><h3 id="float-method" tabindex="-1"><a class="header-anchor" href="#float-method" aria-hidden="true">#</a> float <span class="symbol">- method</span></h3><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">float</span><span style="color:#ADBAC7;">(): </span><span style="color:#F69D50;">Float</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.66</code> <code>新增</code></p><p><code>v1.0.68</code> <code>修改</code></p><p>修改 <s><code>ofFloat</code></s> 为 <code>float</code></p><p><strong>功能描述</strong></p><blockquote><p>得到方法参数的实例对象 Float。</p></blockquote><h3 id="string-method" tabindex="-1"><a class="header-anchor" href="#string-method" aria-hidden="true">#</a> string <span class="symbol">- method</span></h3><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">string</span><span style="color:#ADBAC7;">(): </span><span style="color:#F69D50;">String</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.66</code> <code>新增</code></p><p><code>v1.0.68</code> <code>修改</code></p><p>修改 <s><code>ofString</code></s> 为 <code>string</code></p><p><strong>功能描述</strong></p><blockquote><p>得到方法参数的实例对象 String。</p></blockquote><h3 id="char-method" tabindex="-1"><a class="header-anchor" href="#char-method" aria-hidden="true">#</a> char <span class="symbol">- method</span></h3><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">char</span><span style="color:#ADBAC7;">(): </span><span style="color:#F69D50;">Char</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.68</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>得到方法参数的实例对象 Char。</p></blockquote><h3 id="boolean-method" tabindex="-1"><a class="header-anchor" href="#boolean-method" aria-hidden="true">#</a> boolean <span class="symbol">- method</span></h3><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">boolean</span><span style="color:#ADBAC7;">(): </span><span style="color:#F69D50;">Boolean</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.66</code> <code>新增</code></p><p><code>v1.0.68</code> <code>修改</code></p><p>修改 <s><code>ofBoolean</code></s> 为 <code>boolean</code></p><p><strong>功能描述</strong></p><blockquote><p>得到方法参数的实例对象 Boolean。</p></blockquote><h3 id="any-method" tabindex="-1"><a class="header-anchor" href="#any-method" aria-hidden="true">#</a> any <span class="symbol">- method</span></h3><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">any</span><span style="color:#ADBAC7;">(): </span><span style="color:#F69D50;">Any</span><span style="color:#ADBAC7;">?</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.77</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>得到方法参数的实例对象 Any。</p></blockquote><h3 id="array-method" tabindex="-1"><a class="header-anchor" href="#array-method" aria-hidden="true">#</a> array <span class="symbol">- method</span></h3><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">inline</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> <</span><span style="color:#F69D50;">reified</span><span style="color:#ADBAC7;"> </span><span style="color:#F69D50;">T</span><span style="color:#ADBAC7;">> </span><span style="color:#DCBDFB;">array</span><span style="color:#ADBAC7;">(): </span><span style="color:#F69D50;">Array</span><span style="color:#ADBAC7;"><</span><span style="color:#F69D50;">T</span><span style="color:#ADBAC7;">></span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.68</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>得到方法参数的实例对象 Array。</p></blockquote><h3 id="list-method" tabindex="-1"><a class="header-anchor" href="#list-method" aria-hidden="true">#</a> list <span class="symbol">- method</span></h3><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">inline</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> <</span><span style="color:#F69D50;">reified</span><span style="color:#ADBAC7;"> </span><span style="color:#F69D50;">T</span><span style="color:#ADBAC7;">> </span><span style="color:#DCBDFB;">list</span><span style="color:#ADBAC7;">(): </span><span style="color:#F69D50;">List</span><span style="color:#ADBAC7;"><</span><span style="color:#F69D50;">T</span><span style="color:#ADBAC7;">></span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0.68</code> <code>新增</code></p><p><strong>功能描述</strong></p><blockquote><p>得到方法参数的实例对象 List。</p></blockquote><h3 id="set-method" tabindex="-1"><a class="header-anchor" href="#set-method" aria-hidden="true">#</a> set <span class="symbol">- method</span></h3><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> <</span><span style="color:#F69D50;">T</span><span style="color:#ADBAC7;">> </span><span style="color:#DCBDFB;">set</span><span style="color:#ADBAC7;">(any: </span><span style="color:#F69D50;">T</span><span style="color:#ADBAC7;">?)</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0</code> <code>添加</code></p><p><strong>功能描述</strong></p><blockquote><p>设置方法参数的实例对象。</p></blockquote><h3 id="setnull-method" tabindex="-1"><a class="header-anchor" href="#setnull-method" aria-hidden="true">#</a> setNull <span class="symbol">- method</span></h3><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">setNull</span><span style="color:#ADBAC7;">()</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0</code> <code>添加</code></p><p><strong>功能描述</strong></p><blockquote><p>设置方法参数的实例对象为 <code>null</code>。</p></blockquote><h3 id="settrue-method" tabindex="-1"><a class="header-anchor" href="#settrue-method" aria-hidden="true">#</a> setTrue <span class="symbol">- method</span></h3><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">setTrue</span><span style="color:#ADBAC7;">()</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0</code> <code>添加</code></p><p><strong>功能描述</strong></p><blockquote><p>设置方法参数的实例对象为 <code>true</code>。</p></blockquote><div class="custom-container danger"><p class="custom-container-title">特别注意</p><p>请确保目标对象的类型是 <strong>Boolean</strong>。</p></div><h3 id="setfalse-method" tabindex="-1"><a class="header-anchor" href="#setfalse-method" aria-hidden="true">#</a> setFalse <span class="symbol">- method</span></h3><div class="language-kotlin" data-ext="kt"><pre class="shiki github-dark-dimmed" style="background-color:#22272e;" tabindex="0"><code><span class="line"><span style="color:#F47067;">fun</span><span style="color:#ADBAC7;"> </span><span style="color:#DCBDFB;">setFalse</span><span style="color:#ADBAC7;">()</span></span>
|
||
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.0</code> <code>添加</code></p><p><strong>功能描述</strong></p><blockquote><p>设置方法参数的实例对象为 <code>false</code>。</p></blockquote><div class="custom-container danger"><p class="custom-container-title">特别注意</p><p>请确保目标对象的类型是 <strong>Boolean</strong>。</p></div>`,377),p=[l];function c(t,r){return a(),o("div",null,p)}const i=s(n,[["render",c],["__file","HookParam.html.vue"]]);export{i as default};
|