微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 kotlin

如何解决在 kotlin

我试图用 kotlin 编写一个 getter。 这是我的代码

fun main(){
    val car=Car()
    print(car.myCar)
}

class Car {
    var myCar: String="BMW"
    get() {
        return this.myCar.toLowerCase()
    }
}

当我执行我得到这个异常:Exception in thread "main" java.lang.StackOverflowError

我在一些教程中看到他们使用 field

我的问题是为什么这会给我一个例外,为什么以及我应该如何使用 field

解决方法

你创造了一个无限循环。

var myCar: String = "BMW"
    get() = this.myCar.get().toLowerCase()

等于

field

如您所见,您的“get”函数是递归的。所以你需要使用get()关键字来避免调用var myCar: String = "BMW" get() = field.toLowerCase() 方法:

{{1}}
,
gamer(

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。