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

如何限制Kotlin泛型参数T和R为非可空类型?

如何限制泛型参数T和R为非可空类型

在Kotlin中,要将泛型参数限制为非可空类型,可以通过where子句为泛型参数添加Any上界约束——因为Any是所有非空类型的根类型,这样就能确保T和R不能被指定为可空类型(比如T?)。

修改后的函数签名如下:

fun <T, R> JsonNullable<T>.map(func: (T) -> R): JsonNullable<R>
    where T : Any, R : Any {
    // 函数实现
}

补充说明

  • 这个约束会强制调用方传入的T和R必须是非空类型,比如JsonNullable<String>可以调用该map方法,但JsonNullable<String?>则不行。
  • 如果你的JsonNullable类本身是用来包装可空值的,这种约束会让这个map方法仅适用于包装了非空值的实例,完全匹配你对泛型参数非空的要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 00:40:54