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

Kotlin泛型中类型参数T与Any的区别是什么?

两段Kotlin泛型类的差异分析

这两段代码看似运行逻辑相似,但本质上存在关键区别:

  • 代码1里的<T>是标准的泛型类型参数占位符,T是通用变量名,代表创建类实例时传入的任意类型。比如写SomeClass<Int>(100),param的类型就是Int;写SomeClass<String>("hello"),param的类型就是String。

  • 代码2里的<Any>只是泛型参数的自定义名称,它和Kotlin标准库中所有类的根类kotlin.Any没有任何关联。这里的Any等价于代码1里的T,只是换了个名字而已。比如创建SomeClass<Double>(3.14)时,param的类型还是Double,而非kotlin.Any。

如果想让泛型参数限定为kotlin.Any(仅允许传入非空任意类型),正确写法应为class SomeClass<T : Any>(var param: T),这和代码2的逻辑完全不同。

内容的提问来源于stack exchange,提问作者Андрей Баранов

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 09:37:00