Added getOrNull function in VariousClass

This commit is contained in:
2022-09-27 19:27:53 +08:00
parent 16a82aa756
commit a564740849
3 changed files with 31 additions and 2 deletions

View File

@@ -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()) {

View File

@@ -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)
/**
* 通过字符串类名查找是否存在