From a564740849e050ff49d56de9b88600bc60764a8e Mon Sep 17 00:00:00 2001 From: fankesyooni Date: Tue, 27 Sep 2022 19:27:53 +0800 Subject: [PATCH] Added getOrNull function in VariousClass --- .../yukihookapi/hook/bean/VariousClass.md | 20 ++++++++++++++++++- .../yukihookapi/hook/bean/VariousClass.kt | 11 ++++++++++ .../yukihookapi/hook/param/PackageParam.kt | 2 +- 3 files changed, 31 insertions(+), 2 deletions(-) diff --git a/docs-source/src/zh-cn/api/public/com/highcapable/yukihookapi/hook/bean/VariousClass.md b/docs-source/src/zh-cn/api/public/com/highcapable/yukihookapi/hook/bean/VariousClass.md index 8715eee2..9794410d 100644 --- a/docs-source/src/zh-cn/api/public/com/highcapable/yukihookapi/hook/bean/VariousClass.md +++ b/docs-source/src/zh-cn/api/public/com/highcapable/yukihookapi/hook/bean/VariousClass.md @@ -30,4 +30,22 @@ fun get(loader: ClassLoader? = null): Class<*> > 获取匹配的实体类。 -使用当前 `loader` 装载目标 `Class`。 \ No newline at end of file +使用当前 `loader` 装载目标 `Class`。 + +## getOrNull - method + +```kotlin:no-line-numbers +fun getOrNull(loader: ClassLoader? = null): Class<*>? +``` + +**变更记录** + +`v1.1.0` `新增` + +**功能描述** + +> 获取匹配的实体类。 + +使用当前 `loader` 装载目标 `Class`。 + +匹配不到 `Class` 会返回 `null`,不会抛出异常。 \ No newline at end of file diff --git a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/bean/VariousClass.kt b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/bean/VariousClass.kt index 423d621c..a137e321 100644 --- a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/bean/VariousClass.kt +++ b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/bean/VariousClass.kt @@ -56,6 +56,17 @@ class VariousClass(vararg var name: String) { return finalClass ?: error("VariousClass match failed of those $this") } + /** + * 获取匹配的实体类 + * + * - 使用当前 [loader] 装载目标 [Class] + * + * 匹配不到 [Class] 会返回 null - 不会抛出异常 + * @param loader 当前 [ClassLoader] - 若留空使用默认 [ClassLoader] + * @return [Class] or null + */ + fun getOrNull(loader: ClassLoader? = null) = runCatching { get(loader) }.getOrNull() + override fun toString(): String { var result = "" return if (name.isNotEmpty()) { diff --git a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/param/PackageParam.kt b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/param/PackageParam.kt index c993bcde..c53d9d8b 100644 --- a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/param/PackageParam.kt +++ b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/param/PackageParam.kt @@ -380,7 +380,7 @@ open class PackageParam internal constructor(@PublishedApi internal var wrapper: * @param loader [Class] 所在的 [ClassLoader] - 不填使用 [appClassLoader] * @return [Class] or null */ - fun VariousClass.toClassOrNull(loader: ClassLoader? = appClassLoader) = runCatching { toClass(loader) }.getOrNull() + fun VariousClass.toClassOrNull(loader: ClassLoader? = appClassLoader) = getOrNull(loader) /** * 通过字符串类名查找是否存在