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

Kotlin中Int类型为何无法直接调用length?遇未解析引用错误解析

Kotlin中"Unresolved reference 'length'"错误解析

问题场景

在Kotlin代码中尝试直接调用Int?类型变量的length属性时,出现Unresolved reference 'length'错误。

错误代码

fun main(){
    val box= Box()
    box.x=100
}
class Box{
    var x:Int?=null
        set(value) {
            if(value.length>1){
                println(value)
            }else{
                println("it can not be empty")
            }
        }
}

修改后正常运行的代码

fun main(){
    val box= Box()
    box.x=100
}
class Box{
    var x:Int?=null
        set(value) {
            if(value.toString().length>1){
                println(value)
            }else{
                println("it can not be empty")
            }
        }
}

原因说明

  • x的类型是Int?(可空整数类型),Kotlin里的整数类型本身根本没有length这个属性——length是字符串(String)类型独有的,用来获取字符串的字符个数。
  • 调用value.toString()后,会把整数转成对应的字符串(比如数字100会变成字符串"100"),这时这个字符串对象就有length属性了,代码自然能正常运行。
  • 你应该是想判断数字的位数,转成字符串再取长度是实现这个需求的合理路子,毕竟整数本身不存在“长度”一说,只有变成字符串后才能统计它的字符数量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 17:24:52