You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Kotlin中验证类字符串属性非空并添加空字符串检查?

解决方案

可以利用Kotlin的空安全特性和字符串扩展函数,简洁实现null值与空字符串的双重校验:

方式一:统一校验(推荐)

用takeIf过滤空字符串,配合?:统一抛出异常,代码最简洁:

var email: String = jwt.claims["email"]?.asString()?.takeIf { it.isNotEmpty() }
    ?: throw Exception("email为空或不存在")

如果需要同时排除全空白字符(如空格、换行)的情况,把isNotEmpty()替换为isNotBlank()即可。

方式二:区分异常场景

如果需要针对「字段不存在」和「字段为空」抛出不同提示,用let链式处理:

var email: String = jwt.claims["email"]?.asString()?.let {
    if (it.isNotEmpty()) it else throw Exception("email字段为空")
} ?: throw Exception("email字段不存在")

方式三:复用型扩展函数

如果多处需要类似校验,可以封装扩展函数提升复用性:

fun String?.requireValid(message: String = "参数无效"): String {
    requireNotNull(this) { message }
    require(this.isNotEmpty()) { message }
    return this
}

// 调用示例
var email: String = jwt.claims["email"]?.asString().requireValid("email为空或不存在")

这里用require抛出IllegalArgumentException,更符合参数校验的语义。


内容的提问来源于stack exchange,提问作者Sebi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 16:58:11