首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >字段旁边的'final‘关键字代表什么?

字段旁边的'final‘关键字代表什么?
EN

Stack Overflow用户
提问于 2020-10-19 07:10:39
回答 1查看 192关注 0票数 2

在我正在使用的遗留代码中,我发现了以下内容:

代码语言:javascript
复制
@Autowired
final lateinit var controller: CustomController

这个final关键字在这里意味着什么?

在Kotlin文档中,我发现了关于final关键字的简短描述,即开放类中的阻塞重写方法,但没有关于字段的信息。另外,我发现行所在的类是不打开的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-19 07:43:37

Kotlin中的final属性或方法可以防止重写字段/方法。尽管如此,Kotlin默认认为一个属性或方法/函数是最终的,除非由关键字open指定。在您的例子中,最后一个关键字是多余的。

这里有一个小的演示测试用例来说明同样的情况。

代码语言:javascript
复制
open class Parent {
    open val someValue = 0
    final val otherValue = 13 // redundant modifier 'final' warning in Android Studio
}

class Child : Parent() {
    override val someValue = 5
    // override val otherValue = 19 // compile error
}

OOP中有一个名为脆弱基类的有趣问题,以及为什么某些语言(如Kotlin )默认选择final。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64422637

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档