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

为何Kotlin中Char类型实例无法调用SIZE_BYTES属性?

Kotlin中Char实例无法调用SIZE_BYTES的原因

SIZE_BYTES是Char类的伴生对象属性,属于类级别的成员,而非实例成员。这意味着它只能通过Char类名直接访问,不能通过Char类型的实例(比如你的变量x)调用。

Kotlin把基本类型的这类元数据属性(比如占用字节数、位数)设计为类级别的成员,是因为所有该类型实例的这些属性值都是固定的——所有Char实例在JVM上都占用2字节,没必要为每个实例单独存储这个值,放在类的伴生对象里更高效。

如果一定要通过实例关联获取这个值,也可以用反射方式,但完全没必要,直接使用Char.SIZE_BYTES就足够:

fun main() {
    println(Char.SIZE_BYTES) // 正常输出2

    val x = 'x'
    println(Char.SIZE_BYTES) // 直接用类名访问,结果一致
    // 反射方式(不推荐,仅作演示)
    println(x::class.javaPrimitiveType?.SIZE_BYTES)
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 14:17:00