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

如何获取Kotlin中Nothing类型的KType实例?

获取Nothing对应的KType的直接方法

你遇到的cannot use 'Nothing' as reified type parameter错误,本质是Kotlin的reified泛型参数不允许将Nothing作为实参——它是bottom type,无法被具体化实例。

以下是两种更直接的实现方式:

方法一:通过KClass直接创建KType

借助kotlin.reflect.full.createType扩展函数,从Nothing::class直接生成对应的KType:

import kotlin.reflect.full.createType

val nothingType: KType = Nothing::class.createType()

这种方式完全不需要依赖容器泛型,是最直接的方案。因为Nothing本身没有泛型参数,调用createType()就能生成准确的KType。

方法二:基于可空Nothing调整(备选)

如果场景限制无法使用createType,也可以先获取Nothing?的KType,再通过makeNotNullable()去掉可空性:

import kotlin.reflect.typeOf

val nothingType: KType = typeOf<Nothing?>().makeNotNullable()

不过这种方法不如方法一直观,仅作为备选方案。

你之前通过typeOf<List<Nothing>>().arguments.first().type的方式虽然可行,但依赖List的泛型结构,不够健壮和直观,推荐优先使用方法一。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 14:38:13