Files
YukiHookAPI/assets/DexClassFinder.html-BbI_zWlb.js
github-actions[bot] aac9e42e84 Deploy to GitHub pages
2025-08-02 18:17:09 +00:00

46 lines
44 KiB
JavaScript

import{_ as s,o as e,c as a,a as o}from"./app-BpUB8-Q8.js";const n={},l=o(`<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="dexclassfinder-class" tabindex="-1"><a class="header-anchor" href="#dexclassfinder-class" aria-hidden="true">#</a> DexClassFinder <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;">DexClassFinder</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 style="color:#ADBAC7;"> </span><span style="color:#F47067;">internal</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">var</span><span style="color:#ADBAC7;"> name: </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;">internal</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">var</span><span style="color:#ADBAC7;"> async: </span><span style="color:#F69D50;">Boolean</span><span style="color:#ADBAC7;">,</span></span>
<span class="line"><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">override</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">val</span><span style="color:#ADBAC7;"> loaderSet: </span><span style="color:#F69D50;">ClassLoader</span><span style="color:#ADBAC7;">?</span></span>
<span class="line"><span style="color:#ADBAC7;">) : </span><span style="color:#F69D50;">ClassBaseFinder</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>Class</code> 查找类。</p></blockquote><p>可使用 <code>BaseDexClassLoader</code> 通过指定条件查找指定 <code>Class</code> 或一组 <code>Class</code>。</p><div class="custom-container warning"><p class="custom-container-title">注意</p><p>此功能尚实验阶段,性能与稳定性可能仍然存在问题,使用过程遇到问题请向我们报告并帮助我们改进。</p></div><h2 id="companion-object-object" tabindex="-1"><a class="header-anchor" href="#companion-object-object" aria-hidden="true">#</a> companion object <span class="symbol">- object</span></h2><p><strong>变更记录</strong></p><p><code>v1.1.0</code> <code>新增</code></p><h3 id="clearcache-method" tabindex="-1"><a class="header-anchor" href="#clearcache-method" aria-hidden="true">#</a> clearCache <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;">clearCache</span><span style="color:#ADBAC7;">(context: </span><span style="color:#F69D50;">Context</span><span style="color:#ADBAC7;">?, versionName: </span><span style="color:#F69D50;">String</span><span style="color:#ADBAC7;">?, versionCode: </span><span style="color:#F69D50;">Long</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>DexClassFinder</code> 的 <code>Class</code> 缓存。</p></blockquote><p>适用于全部通过 <a href="../../../factory/ReflectionFactory#classloader-searchclass-ext-method">ClassLoader.searchClass</a> 或 <a href="../../../param/PackageParam#searchclass-method">PackageParam.searchClass</a> 获取的 <code>DexClassFinder</code>。</p><h2 id="fullname-field" tabindex="-1"><a class="header-anchor" href="#fullname-field" aria-hidden="true">#</a> fullName <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;"> fullName: </span><span style="color:#F69D50;">String</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>Class</code> 完整名称。</p></blockquote><p>只会查找匹配到的 <code>Class.getName</code>。</p><p>例如 <code>com.demo.Test</code> 需要填写 <code>com.demo.Test</code>。</p><h2 id="simplename-field" tabindex="-1"><a class="header-anchor" href="#simplename-field" aria-hidden="true">#</a> simpleName <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;"> simpleName: </span><span style="color:#F69D50;">String</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>Class</code> 简单名称。</p></blockquote><p>只会查找匹配到的 <code>Class.getSimpleName</code>。</p><p>例如 <code>com.demo.Test</code> 只需要填写 <code>Test</code>。</p><p>对于匿名类例如 <code>com.demo.Test$InnerTest</code> 会为空,此时你可以使用 <a href="#singlename-field">singleName</a>。</p><h2 id="singlename-field" tabindex="-1"><a class="header-anchor" href="#singlename-field" aria-hidden="true">#</a> singleName <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;"> singleName: </span><span style="color:#F69D50;">String</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>Class</code> 独立名称。</p></blockquote><p>设置后将首先使用 <code>Class.getSimpleName</code>,若为空则会使用 <code>Class.getName</code> 进行处理。</p><p>例如 <code>com.demo.Test</code> 只需要填写 <code>Test</code>。</p><p>对于匿名类例如 <code>com.demo.Test$InnerTest</code> 只需要填写 <code>Test$InnerTest</code>。</p><h2 id="from-method" tabindex="-1"><a class="header-anchor" href="#from-method" aria-hidden="true">#</a> from <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;">from</span><span style="color:#ADBAC7;">(</span><span style="color:#F47067;">vararg</span><span style="color:#ADBAC7;"> name: </span><span style="color:#F69D50;">String</span><span style="color:#ADBAC7;">): </span><span style="color:#F69D50;">FromPackageRules</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>Class</code>。</p></blockquote><p>设置后仅会在当前 <code>name</code> 开头匹配的包名路径下进行查找,可提升查找速度。</p><p>例如 ↓</p><p><code>com.demo.test</code></p><p><code>com.demo.test.demo</code></p><div class="custom-container warning"><p class="custom-container-title">注意</p><p>建议设置此参数指定查找范围,否则 <strong>Class</strong> 过多时将会非常慢。</p></div><h2 id="modifiers-method" tabindex="-1"><a class="header-anchor" href="#modifiers-method" aria-hidden="true">#</a> modifiers <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;">modifiers</span><span style="color:#ADBAC7;">(conditions: </span><span style="color:#F69D50;">ModifierConditions</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>Class</code> 标识符筛选条件。</p></blockquote><p>可不设置筛选条件。</p><h2 id="fullname-method" tabindex="-1"><a class="header-anchor" href="#fullname-method" aria-hidden="true">#</a> fullName <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;">fullName</span><span style="color:#ADBAC7;">(</span><span style="color:#F47067;">value</span><span style="color:#ADBAC7;">: </span><span style="color:#F69D50;">String</span><span style="color:#ADBAC7;">): </span><span style="color:#F69D50;">ClassNameRules</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>Class</code> 完整名称。</p></blockquote><p>只会查找匹配到的 <code>Class.getName</code>。</p><p>例如 <code>com.demo.Test</code> 需要填写 <code>com.demo.Test</code>。</p><h2 id="simplename-method" tabindex="-1"><a class="header-anchor" href="#simplename-method" aria-hidden="true">#</a> simpleName <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;">simpleName</span><span style="color:#ADBAC7;">(</span><span style="color:#F47067;">value</span><span style="color:#ADBAC7;">: </span><span style="color:#F69D50;">String</span><span style="color:#ADBAC7;">): </span><span style="color:#F69D50;">ClassNameRules</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>Class</code> 简单名称。</p></blockquote><p>只会查找匹配到的 <code>Class.getSimpleName</code>。</p><p>例如 <code>com.demo.Test</code> 只需要填写 <code>Test</code>。</p><p>对于匿名类例如 <code>com.demo.Test$InnerTest 会为空</code>,此时你可以使用 <a href="#singlename-method">singleName</a>。</p><h2 id="singlename-method" tabindex="-1"><a class="header-anchor" href="#singlename-method" aria-hidden="true">#</a> singleName <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;">singleName</span><span style="color:#ADBAC7;">(</span><span style="color:#F47067;">value</span><span style="color:#ADBAC7;">: </span><span style="color:#F69D50;">String</span><span style="color:#ADBAC7;">): </span><span style="color:#F69D50;">ClassNameRules</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>Class</code> 独立名称。</p></blockquote><p>设置后将首先使用 <code>Class.getSimpleName</code>,若为空则会使用 <code>Class.getName</code> 进行处理。</p><p>例如 <code>com.demo.Test</code> 只需要填写 <code>Test</code>。</p><p>对于匿名类例如 <code>com.demo.Test$InnerTest</code> 只需要填写 <code>Test$InnerTest</code>。</p><h2 id="fullname-method-1" tabindex="-1"><a class="header-anchor" href="#fullname-method-1" aria-hidden="true">#</a> fullName <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;">fullName</span><span style="color:#ADBAC7;">(conditions: </span><span style="color:#F69D50;">NameConditions</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>Class</code> 完整名称条件。</p></blockquote><p>只会查找匹配到的 <code>Class.getName</code>。</p><h2 id="simplename-method-1" tabindex="-1"><a class="header-anchor" href="#simplename-method-1" aria-hidden="true">#</a> simpleName <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;">simpleName</span><span style="color:#ADBAC7;">(conditions: </span><span style="color:#F69D50;">NameConditions</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>Class</code> 简单名称条件。</p></blockquote><p>只会查找匹配到的 <code>Class.getSimpleName</code>。</p><h2 id="singlename-method-1" tabindex="-1"><a class="header-anchor" href="#singlename-method-1" aria-hidden="true">#</a> singleName <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;">singleName</span><span style="color:#ADBAC7;">(conditions: </span><span style="color:#F69D50;">NameConditions</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>Class</code> 独立名称条件。</p></blockquote><p>设置后将首先使用 <code>Class.getSimpleName</code>,若为空则会使用 <code>Class.getName</code> 进行处理。</p><h2 id="extends-method" tabindex="-1"><a class="header-anchor" href="#extends-method" aria-hidden="true">#</a> extends <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;"> &lt;</span><span style="color:#F69D50;">reified</span><span style="color:#ADBAC7;"> </span><span style="color:#F69D50;">T</span><span style="color:#ADBAC7;">&gt; </span><span style="color:#DCBDFB;">extends</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>Class</code> 继承的父类。</p></blockquote><h2 id="extends-method-1" tabindex="-1"><a class="header-anchor" href="#extends-method-1" aria-hidden="true">#</a> extends <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;">extends</span><span style="color:#ADBAC7;">(</span><span style="color:#F47067;">vararg</span><span style="color:#ADBAC7;"> name: </span><span style="color:#F69D50;">String</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>Class</code> 继承的父类。</p></blockquote><p>会同时查找 <code>name</code> 中所有匹配的父类。</p><h2 id="implements-method" tabindex="-1"><a class="header-anchor" href="#implements-method" aria-hidden="true">#</a> implements <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;"> &lt;</span><span style="color:#F69D50;">reified</span><span style="color:#ADBAC7;"> </span><span style="color:#F69D50;">T</span><span style="color:#ADBAC7;">&gt; </span><span style="color:#DCBDFB;">implements</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>Class</code> 实现的接口类。</p></blockquote><h2 id="implements-method-1" tabindex="-1"><a class="header-anchor" href="#implements-method-1" aria-hidden="true">#</a> implements <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;">implements</span><span style="color:#ADBAC7;">(</span><span style="color:#F47067;">vararg</span><span style="color:#ADBAC7;"> name: </span><span style="color:#F69D50;">String</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>Class</code> 实现的接口类。</p></blockquote><p>会同时查找 <code>name</code> 中所有匹配的接口类。</p><h2 id="anonymous-method" tabindex="-1"><a class="header-anchor" href="#anonymous-method" aria-hidden="true">#</a> anonymous <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;">anonymous</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>Class</code> 为匿名类。</p></blockquote><p>例如 <code>com.demo.Test$1</code> 或 <code>com.demo.Test$InnerTest</code>。</p><p>标识后你可以使用 <a href="#enclosing-method">enclosing</a> 来进一步指定匿名类的 (封闭类) 主类。</p><h2 id="noextends-method" tabindex="-1"><a class="header-anchor" href="#noextends-method" aria-hidden="true">#</a> noExtends <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;">noExtends</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>Class</code> 没有任何继承。</p></blockquote><p>此时 <code>Class</code> 只应该继承于 <code>Any</code>。</p><div class="custom-container warning"><p class="custom-container-title">注意</p><p>设置此条件后 <a href="#extends-method">extends</a> 将失效。</p></div><h2 id="noimplements-method" tabindex="-1"><a class="header-anchor" href="#noimplements-method" aria-hidden="true">#</a> noImplements <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;">noImplements</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>Class</code> 没有任何接口。</p></blockquote><div class="custom-container warning"><p class="custom-container-title">注意</p><p>设置此条件后 <a href="#implements-method">implements</a> 将失效。</p></div><h2 id="nosuper-method" tabindex="-1"><a class="header-anchor" href="#nosuper-method" aria-hidden="true">#</a> noSuper <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;">noSuper</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>Class</code> 没有任何继承与接口。</p></blockquote><p>此时 <code>Class</code> 只应该继承于 <code>Any</code>。</p><div class="custom-container warning"><p class="custom-container-title">注意</p><p>设置此条件后 <a href="#extends-method">extends</a> 与 <a href="#implements-method">implements</a> 将失效。</p></div><h2 id="enclosing-method" tabindex="-1"><a class="header-anchor" href="#enclosing-method" aria-hidden="true">#</a> enclosing <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;"> &lt;</span><span style="color:#F69D50;">reified</span><span style="color:#ADBAC7;"> </span><span style="color:#F69D50;">T</span><span style="color:#ADBAC7;">&gt; </span><span style="color:#DCBDFB;">enclosing</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>Class</code> 匿名类的 (封闭类) 主类。</p></blockquote><h2 id="enclosing-method-1" tabindex="-1"><a class="header-anchor" href="#enclosing-method-1" aria-hidden="true">#</a> enclosing <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;">enclosing</span><span style="color:#ADBAC7;">(</span><span style="color:#F47067;">vararg</span><span style="color:#ADBAC7;"> name: </span><span style="color:#F69D50;">String</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>Class</code> 匿名类的 (封闭类) 主类。</p></blockquote><p>会同时查找 <code>name</code> 中所有匹配的 (封闭类) 主类。</p><h2 id="frompackagerules-class" tabindex="-1"><a class="header-anchor" href="#frompackagerules-class" aria-hidden="true">#</a> FromPackageRules <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;">FromPackageRules</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;"> packages: </span><span style="color:#F69D50;">MutableList</span><span style="color:#ADBAC7;">&lt;</span><span style="color:#F69D50;">ClassRulesData</span><span style="color:#ADBAC7;">.</span><span style="color:#F69D50;">PackageRulesData</span><span style="color:#ADBAC7;">&gt;)</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><h3 id="absolute-method" tabindex="-1"><a class="header-anchor" href="#absolute-method" aria-hidden="true">#</a> absolute <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;">absolute</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><p>例如有如下包名 ↓</p><p><code>com.demo.test.a</code></p><p><code>com.demo.test.a.b</code></p><p><code>com.demo.test.active</code></p><p>若包名条件为 <code>com.demo.test.a</code> 则绝对匹配仅能匹配到第一个。</p><p>相反地,不设置以上示例会全部匹配。</p><h2 id="classnamerules-class" tabindex="-1"><a class="header-anchor" href="#classnamerules-class" aria-hidden="true">#</a> ClassNameRules <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;">ClassNameRules</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;"> name: </span><span style="color:#F69D50;">ClassRulesData</span><span style="color:#ADBAC7;">.NameRulesData)</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><h3 id="optional-method" tabindex="-1"><a class="header-anchor" href="#optional-method" aria-hidden="true">#</a> optional <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;">optional</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><p>例如有如下类名 ↓</p><p><code>com.demo.Test</code> <strong>fullName</strong> / <code>Test</code> <strong>simpleName</strong></p><p><code>defpackage.a</code> <strong>fullName</strong> / <code>a</code> <strong>simpleName</strong></p><p>这两个类名都是同一个类,但是在有些版本中被混淆有些版本没有。</p><p>此时可设置类名为 <code>com.demo.Test</code> <strong>fullName</strong> / <code>Test</code> <strong>simpleName</strong>。</p><p>这样就可在完全匹配类名情况下使用类名而忽略其它查找条件,否则忽略此条件继续使用其它查找条件。</p><h2 id="member-method" tabindex="-1"><a class="header-anchor" href="#member-method" aria-hidden="true">#</a> member <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:#DCBDFB;">member</span><span style="color:#ADBAC7;">(initiate: </span><span style="color:#F69D50;">MemberRules</span><span style="color:#ADBAC7;">.() </span><span style="color:#F47067;">-&gt;</span><span style="color:#ADBAC7;"> Unit): </span><span style="color:#F69D50;">MemberRulesResult</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>Class</code> 满足的 <code>Member</code> 条件。</p></blockquote><h2 id="field-method" tabindex="-1"><a class="header-anchor" href="#field-method" aria-hidden="true">#</a> field <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:#DCBDFB;">field</span><span style="color:#ADBAC7;">(initiate: </span><span style="color:#F69D50;">FieldRules</span><span style="color:#ADBAC7;">.() </span><span style="color:#F47067;">-&gt;</span><span style="color:#ADBAC7;"> Unit): </span><span style="color:#F69D50;">MemberRulesResult</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>Class</code> 满足的 <code>Field</code> 条件。</p></blockquote><h2 id="method-method" tabindex="-1"><a class="header-anchor" href="#method-method" aria-hidden="true">#</a> method <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:#DCBDFB;">method</span><span style="color:#ADBAC7;">(initiate: </span><span style="color:#F69D50;">MethodRules</span><span style="color:#ADBAC7;">.() </span><span style="color:#F47067;">-&gt;</span><span style="color:#ADBAC7;"> Unit): </span><span style="color:#F69D50;">MemberRulesResult</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>Class</code> 满足的 <code>Method</code> 条件。</p></blockquote><h2 id="constructor-method" tabindex="-1"><a class="header-anchor" href="#constructor-method" aria-hidden="true">#</a> constructor <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:#DCBDFB;">constructor</span><span style="color:#ADBAC7;">(initiate: </span><span style="color:#F69D50;">ConstructorRules</span><span style="color:#ADBAC7;">.() </span><span style="color:#F47067;">-&gt;</span><span style="color:#ADBAC7;"> Unit): </span><span style="color:#F69D50;">MemberRulesResult</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>Class</code> 满足的 <code>Constructor</code> 条件。</p></blockquote><h2 id="result-class" tabindex="-1"><a class="header-anchor" href="#result-class" aria-hidden="true">#</a> Result <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;">Result</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;">internal</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">var</span><span style="color:#ADBAC7;"> isNotFound: </span><span style="color:#F69D50;">Boolean</span><span style="color:#ADBAC7;">, </span><span style="color:#F47067;">internal</span><span style="color:#ADBAC7;"> </span><span style="color:#F47067;">var</span><span style="color:#ADBAC7;"> throwable: </span><span style="color:#F69D50;">Throwable</span><span style="color:#ADBAC7;">?) : </span><span style="color:#F69D50;">BaseResult</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>Class</code> 查找结果实现类。</p></blockquote><h3 id="result-method" tabindex="-1"><a class="header-anchor" href="#result-method" aria-hidden="true">#</a> result <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:#DCBDFB;">result</span><span style="color:#ADBAC7;">(initiate: </span><span style="color:#F69D50;">Result</span><span style="color:#ADBAC7;">.() </span><span style="color:#F47067;">-&gt;</span><span style="color:#ADBAC7;"> Unit): </span><span style="color:#F69D50;">Result</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><h3 id="get-method" tabindex="-1"><a class="header-anchor" href="#get-method" aria-hidden="true">#</a> get <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;">get</span><span style="color:#ADBAC7;">(): </span><span style="color:#F69D50;">Class</span><span style="color:#ADBAC7;">&lt;*&gt;?</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>Class</code> 本身。</p></blockquote><p>若有多个 <code>Class</code> 结果只会返回第一个。</p><p>在查找条件找不到任何结果的时候将返回 <code>null</code>。</p><p>若你设置了 <code>async</code> 请使用 <a href="#wait-method">wait</a> 方法。</p><h3 id="all-method" tabindex="-1"><a class="header-anchor" href="#all-method" aria-hidden="true">#</a> all <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;">all</span><span style="color:#ADBAC7;">(): </span><span style="color:#F69D50;">MutableList</span><span style="color:#ADBAC7;">&lt;</span><span style="color:#F69D50;">Class</span><span style="color:#ADBAC7;">&lt;*&gt;&gt;</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.1.0</code> <code>新增</code></p><p><code>v1.2.0</code> <code>修改</code></p><p>返回值类型由 <code>HashSet</code> 修改为 <code>MutableList</code></p><p><strong>功能描述</strong></p><blockquote><p>得到 <code>Class</code> 本身数组。</p></blockquote><p>返回全部查找条件匹配的多个 <code>Class</code> 实例。</p><p>在查找条件找不到任何结果的时候将返回空的 <code>MutableList</code>。</p><p>若你设置了 <code>async</code> 请使用 <a href="#waitall-method">waitAll</a> 方法。</p><h3 id="all-method-1" tabindex="-1"><a class="header-anchor" href="#all-method-1" aria-hidden="true">#</a> all <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;">all</span><span style="color:#ADBAC7;">(result: (</span><span style="color:#F69D50;">Class</span><span style="color:#ADBAC7;">&lt;*&gt;) -&gt; </span><span style="color:#F69D50;">Unit</span><span style="color:#ADBAC7;">): </span><span style="color:#F69D50;">Result</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>Class</code> 本身数组 (依次遍历)。</p></blockquote><p>回调全部查找条件匹配的多个 <code>Class</code> 实例。</p><p>在查找条件找不到任何结果的时候将不会执行。</p><p>若你设置了 <code>async</code> 请使用 <a href="#waitall-method">waitAll</a> 方法。</p><h3 id="wait-method" tabindex="-1"><a class="header-anchor" href="#wait-method" aria-hidden="true">#</a> wait <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;">wait</span><span style="color:#ADBAC7;">(result: (</span><span style="color:#F69D50;">Class</span><span style="color:#ADBAC7;">&lt;*&gt;?) -&gt; </span><span style="color:#F69D50;">Unit</span><span style="color:#ADBAC7;">): </span><span style="color:#F69D50;">Result</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>Class</code> 本身 (异步)。</p></blockquote><p>若有多个 <code>Class</code> 结果只会回调第一个。</p><p>在查找条件找不到任何结果的时候将回调 null。</p><p>你需要设置 <code>async</code> 后此方法才会被回调,否则请使用 <a href="#get-method">get</a> 方法。</p><h3 id="waitall-method" tabindex="-1"><a class="header-anchor" href="#waitall-method" aria-hidden="true">#</a> waitAll <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;">waitAll</span><span style="color:#ADBAC7;">(result: (</span><span style="color:#F69D50;">MutableList</span><span style="color:#ADBAC7;">&lt;</span><span style="color:#F69D50;">Class</span><span style="color:#ADBAC7;">&lt;*&gt;&gt;) -&gt; </span><span style="color:#F69D50;">Unit</span><span style="color:#ADBAC7;">): </span><span style="color:#F69D50;">Result</span></span>
<span class="line"></span></code></pre></div><p><strong>变更记录</strong></p><p><code>v1.1.0</code> <code>新增</code></p><p><code>v1.2.0</code> <code>修改</code></p><p><code>result</code> 类型由 <code>HashSet</code> 修改为 <code>MutableList</code></p><p><strong>功能描述</strong></p><blockquote><p>得到 <code>Class</code> 本身数组 (异步)。</p></blockquote><p>回调全部查找条件匹配的多个 <code>Class</code> 实例。</p><p>在查找条件找不到任何结果的时候将回调空的 <code>MutableList</code>。</p><p>你需要设置 <code>async</code> 后此方法才会被回调,否则请使用 <a href="#all-method">all</a> 方法。</p><h3 id="onnoclassdeffounderror-method" tabindex="-1"><a class="header-anchor" href="#onnoclassdeffounderror-method" aria-hidden="true">#</a> onNoClassDefFoundError <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;">onNoClassDefFoundError</span><span style="color:#ADBAC7;">(result: (</span><span style="color:#F69D50;">Throwable</span><span style="color:#ADBAC7;">) -&gt; </span><span style="color:#F69D50;">Unit</span><span style="color:#ADBAC7;">): </span><span style="color:#F69D50;">Result</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>Class</code> 时。</p></blockquote><h3 id="ignored-method" tabindex="-1"><a class="header-anchor" href="#ignored-method" aria-hidden="true">#</a> ignored <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;">ignored</span><span style="color:#ADBAC7;">(): </span><span style="color:#F69D50;">Result</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><p>此时若要监听异常结果,你需要手动实现 <a href="#onnoclassdeffounderror-method">onNoClassDefFoundError</a> 方法。</p>`,314),p=[l];function c(t,d){return e(),a("div",null,p)}const i=s(n,[["render",c],["__file","DexClassFinder.html.vue"]]);export{i as default};