diff --git a/forgeboot-core/forgeboot-core-extension/build.gradle.kts b/forgeboot-core/forgeboot-core-extension/build.gradle.kts index 1d47d6f..245946c 100644 --- a/forgeboot-core/forgeboot-core-extension/build.gradle.kts +++ b/forgeboot-core/forgeboot-core-extension/build.gradle.kts @@ -1,4 +1,4 @@ dependencies { val libs = rootProject.libs - implementation(libs.slf4j.api) + compileOnly(libs.slf4j.api) } \ No newline at end of file diff --git a/forgeboot-core/forgeboot-core-extension/src/main/kotlin/com/gewuyou/forgeboot/core/extension/EnumExtensions.kt b/forgeboot-core/forgeboot-core-extension/src/main/kotlin/com/gewuyou/forgeboot/core/extension/EnumExtensions.kt new file mode 100644 index 0000000..7c8b8de --- /dev/null +++ b/forgeboot-core/forgeboot-core-extension/src/main/kotlin/com/gewuyou/forgeboot/core/extension/EnumExtensions.kt @@ -0,0 +1,11 @@ +package com.gewuyou.forgeboot.core.extension + +/** + * 尝试将给定的字符串转换为指定枚举类型的枚举值 + * 如果转换失败或输入字符串为空,则返回null + * + * @param name 要转换为枚举值的字符串名称,可以为空 + * @return 成功转换的枚举值,如果失败则返回null + */ +inline fun > enumValueOfOrNull(name: String?): T? = + try { enumValueOf(name ?: "") } catch (_: Exception) { null } diff --git a/forgeboot-core/forgeboot-core-extension/src/main/kotlin/com/gewuyou/forgeboot/core/extension/ExceptionExtensions.kt b/forgeboot-core/forgeboot-core-extension/src/main/kotlin/com/gewuyou/forgeboot/core/extension/ExceptionExtensions.kt new file mode 100644 index 0000000..4df8462 --- /dev/null +++ b/forgeboot-core/forgeboot-core-extension/src/main/kotlin/com/gewuyou/forgeboot/core/extension/ExceptionExtensions.kt @@ -0,0 +1,22 @@ +package com.gewuyou.forgeboot.core.extension + +/** + * 尝试执行一段代码块,如果执行过程中抛出异常,则返回null。 + * 使用inline避免额外的函数调用开销,对于性能敏感的场景特别有用。 + * + * @param block 一个lambda表达式,代表尝试执行的代码块。 + * @return 成功执行的结果,或者如果执行过程中抛出异常,则返回null。 + */ +inline fun tryOrNull(block: () -> T): T? = + try { block() } catch (_: Exception) { null } + +/** + * 尝试执行一段代码块,如果执行过程中抛出异常,则返回一个预设的备选值。 + * 同样使用inline关键字,以减少性能开销。 + * + * @param fallBack 备选值,如果代码块执行过程中抛出异常,则返回该值。 + * @param block 一个lambda表达式,代表尝试执行的代码块。 + * @return 成功执行的结果,或者如果执行过程中抛出异常,则返回备选值。 + */ +inline fun tryOrFallBack(fallBack: T, block: () -> T): T = + try { block() } catch (_: Exception) { fallBack } diff --git a/forgeboot-core/forgeboot-core-extension/src/main/kotlin/com/gewuyou/forgeboot/core/extension/Logger.kt b/forgeboot-core/forgeboot-core-extension/src/main/kotlin/com/gewuyou/forgeboot/core/extension/LoggerExtensions.kt similarity index 72% rename from forgeboot-core/forgeboot-core-extension/src/main/kotlin/com/gewuyou/forgeboot/core/extension/Logger.kt rename to forgeboot-core/forgeboot-core-extension/src/main/kotlin/com/gewuyou/forgeboot/core/extension/LoggerExtensions.kt index 46fb0c0..d2e184e 100644 --- a/forgeboot-core/forgeboot-core-extension/src/main/kotlin/com/gewuyou/forgeboot/core/extension/Logger.kt +++ b/forgeboot-core/forgeboot-core-extension/src/main/kotlin/com/gewuyou/forgeboot/core/extension/LoggerExtensions.kt @@ -2,12 +2,6 @@ package com.gewuyou.forgeboot.core.extension import org.slf4j.Logger import org.slf4j.LoggerFactory -/** - *日志扩展类 - * - * @since 2025-01-02 12:49:13 - * @author gewuyou - */ /** * 日志扩展