diff --git a/docs-source/src/zh-cn/api/public/com/highcapable/yukihookapi/hook/factory/ReflectionFactory.md b/docs-source/src/zh-cn/api/public/com/highcapable/yukihookapi/hook/factory/ReflectionFactory.md
index a1378948..34bc6db3 100644
--- a/docs-source/src/zh-cn/api/public/com/highcapable/yukihookapi/hook/factory/ReflectionFactory.md
+++ b/docs-source/src/zh-cn/api/public/com/highcapable/yukihookapi/hook/factory/ReflectionFactory.md
@@ -250,6 +250,26 @@ val customClassLoader: ClassLoader? = ... // 假设这个就是你的 ClassLoade
"com.example.demo.DemoClass".toClass(customClassLoader)
```
+## String.toClassOrNull - ext-method
+
+```kotlin:no-line-numbers
+fun String.toClassOrNull(loader: ClassLoader?): Class<*>?
+```
+
+**变更记录**
+
+`v1.1.0` `新增`
+
+**功能描述**
+
+> 通过字符串类名转换为 `loader` 中的实体类。
+
+找不到 `Class` 会返回 `null`,不会抛出异常。
+
+**功能示例**
+
+用法请参考 [String.toClass](#string-toclass-ext-method) 方法。
+
## classOf - method
```kotlin:no-line-numbers
diff --git a/docs-source/src/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.md b/docs-source/src/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.md
index 1249f2f7..8249b17b 100644
--- a/docs-source/src/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.md
+++ b/docs-source/src/zh-cn/api/public/com/highcapable/yukihookapi/hook/param/PackageParam.md
@@ -574,6 +574,32 @@ val customClassLoader: ClassLoader? = ... // 假设这个就是你的 ClassLoade
VariousClass("com.example.demo.DemoClass1", "com.example.demo.DemoClass2").toClass(customClassLoader)
```
+## String+VariousClass.toClassOrNull - i-ext-method
+
+```kotlin:no-line-numbers
+fun String.toClassOrNull(loader: ClassLoader?): Class<*>?
+```
+
+```kotlin:no-line-numbers
+fun VariousClass.toClassOrNull(loader: ClassLoader?): Class<*>?
+```
+
+**变更记录**
+
+`v1.1.0` `新增`
+
+**功能描述**
+
+> 通过字符串类名、`VariousClass` 转换为 `loader` 中的实体类。
+
+默认使用当前 `appClassLoader` 装载目标 `Class`。
+
+找不到 `Class` 会返回 `null`,不会抛出异常。
+
+**功能示例**
+
+用法请参考 [String+VariousClass.toClass](#string-variousclass-toclass-i-ext-method) 方法。
+
## String.hasClass - i-ext-method
```kotlin:no-line-numbers
diff --git a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/factory/ReflectionFactory.kt b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/factory/ReflectionFactory.kt
index b43ddf29..8170d85d 100644
--- a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/factory/ReflectionFactory.kt
+++ b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/factory/ReflectionFactory.kt
@@ -111,6 +111,15 @@ fun classOf(name: String, loader: ClassLoader? = null) = name.toClass(loader)
*/
fun String.toClass(loader: ClassLoader? = null) = ReflectionTool.findClassByName(name = this, loader)
+/**
+ * 通过字符串类名转换为 [loader] 中的实体类
+ *
+ * 找不到 [Class] 会返回 null - 不会抛出异常
+ * @param loader [Class] 所在的 [ClassLoader] - 默认空 - 不填使用默认 [ClassLoader]
+ * @return [Class] or null
+ */
+fun String.toClassOrNull(loader: ClassLoader? = null) = runCatching { toClass(loader) }.getOrNull()
+
/**
* 通过 [T] 得到其 [Class] 实例并转换为实体类
* @param loader [Class] 所在的 [ClassLoader] - 默认空 - 可不填
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 8be55a73..c993bcde 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
@@ -356,6 +356,15 @@ open class PackageParam internal constructor(@PublishedApi internal var wrapper:
*/
fun String.toClass(loader: ClassLoader? = appClassLoader) = ReflectionTool.findClassByName(name = this, loader)
+ /**
+ * 通过字符串类名转换为 [loader] 中的实体类
+ *
+ * 找不到 [Class] 会返回 null - 不会抛出异常
+ * @param loader [Class] 所在的 [ClassLoader] - 不填使用 [appClassLoader]
+ * @return [Class] or null
+ */
+ fun String.toClassOrNull(loader: ClassLoader? = appClassLoader) = runCatching { toClass(loader) }.getOrNull()
+
/**
* [VariousClass] 转换为 [loader] 中的实体类
* @param loader [Class] 所在的 [ClassLoader] - 不填使用 [appClassLoader]
@@ -364,6 +373,15 @@ open class PackageParam internal constructor(@PublishedApi internal var wrapper:
*/
fun VariousClass.toClass(loader: ClassLoader? = appClassLoader) = get(loader)
+ /**
+ * [VariousClass] 转换为 [loader] 中的实体类
+ *
+ * 匹配不到 [Class] 会返回 null - 不会抛出异常
+ * @param loader [Class] 所在的 [ClassLoader] - 不填使用 [appClassLoader]
+ * @return [Class] or null
+ */
+ fun VariousClass.toClassOrNull(loader: ClassLoader? = appClassLoader) = runCatching { toClass(loader) }.getOrNull()
+
/**
* 通过字符串类名查找是否存在
* @param loader [Class] 所在的 [ClassLoader] - 不填使用 [appClassLoader]